99. A-tag-not-highly-recommended

cordova-plugin-crypt-fileでcordovaをアップデートしたらビルドできない

アプリ開発をイメージさせる写真
絹田 真也

こんにちは!エンジニアの絹田です。今回はPythonでAphaVantage APIを扱う方法について紹介します。

2019年までCordovaでiOS, Androidアプリを作成,公開していました. 現在はAngularベースでCapacitorに移行しましたが,Cordovaを使っていたときにファイルを暗号化する部分で発生したエラーについてまとめています.

 

問題はcordova-plugin-crypt-fileを入れて難読化しているのだが、cordova9.0.0へバージョンアップしたらビルドできなくなったことです.

エラーメッセージは下記です.

Using “requireCordovaModule” to load non-cordova module “path” is not supported. Instead, add this module to your dependencies and use regular “require” to load it.

バグではなくセキュリティを高めるための仕様の変更で,本来はプラグインが対応すべき問題です.しかし、今回原因となったcordova-plugin-crypt-fileがまだ対応していなかったのでその場合の回避方法です.

対象のプラグイン

アプリのソースコードを暗号化するcordova-plugin-crypt-file

対処方法

これを参考に/plugins/cordova-plugin-crypt-file/hooks/after_prepare.jsをいじることで解決しました.

https://github.com/PeterHdd/cordova-plugin-crypto-file/issues/8

変更前

module.exports = function(context)
{
var path = context.requireCordovaModule('path'),
fs = context.requireCordovaModule('fs'),
crypto = context.requireCordovaModule('crypto'),
Q = context.requireCordovaModule('q'),
cordova_util = context.requireCordovaModule('cordova-lib/src/cordova/util'),
platforms = context.requireCordovaModule('cordova-lib/src/platforms/platforms'),
Parser = context.requireCordovaModule('cordova-lib/src/cordova/metadata/parser'),
ParserHelper = context.requireCordovaModule('cordova-lib/src/cordova/metadata/parserhelper/ParserHelper'),
ConfigParser = context.requireCordovaModule('cordova-common').ConfigParser;

変更後

module.exports = function(context) {

    var path              = require('path'),
        fs                = require('fs'),
        crypto            = require('crypto'),
        Q                 = require('q'),
        cordova_util      = context.requireCordovaModule('cordova-lib/src/cordova/util'),
        platforms         = context.requireCordovaModule('cordova-lib/src/platforms/platforms'),
        ConfigParser      = context.requireCordovaModule('cordova-common').ConfigParser;

データサイエンティスト
絹田 雅
アーナンダよ、あなたはカピラヴァットゥのサキャ族の人たちに、修学すべき人(有学)の修学と実践について説明しなさい。わたしは背中が疲れました。背中を伸ばそう。 マハーナーマよ、ここに貴い弟子は戒をそなえ、感覚器官の門を防御し、食事の適量を知り、覚醒しており、七つの正しい教えをそなえており、明瞭なこころに依存し、現世で安楽に過ごす、明瞭なこころに依存する四段階からなる瞑想(四禅)を希求し、容易に得て、困難なく得ます。
twitter-timeline