チームBLUECODEの開発ブログ

開発の中で生まれたtipsを共有していきます。

Cordova crypt file pluginとCamera(カメラ操作プラグイン )について【開発Tips】

こんばんわ。BLUECODEのオカモです。

今回も前回の(オカモの)投稿に引き続き、Monacaアプリの暗号化プラグインである「Cordova crypt file plugin」について書いていきます。

 

先日リリースしたYourshelf(Yourshelf ~棚でつながるSNS~ - Google Play の Android アプリ)のリリースビルドを行う時、困った事態に陥りました。

Yourshelfでは暗号化プラグインの他に、「Camera」という写真の撮影やライブラリへの参照を行うためのCordovaプラグインを使用しているのですが、そのプラグインがビルド時に動かないというなんとも悲しい出来事が起こってしまったのです。

 

アプリのPGも完了し、いざ最終テストを行うためアプリをビルドし動かしてみると、写真投稿機能が動かない、、、チーン

 

俺たちの3ヶ月は一体。。。。。。-_-; -o-;=_=;

 

はじめは全く原因がわからず途方に暮れていました。

 

途方にくれていても仕方ないため、ググってみると、以下のQiitaサイトのコメント欄に今回発生した問題と関係ありそうなコメントを発見しました。

qiita.com

※Cordova crypt file pluginを作った人って日本人なんですね。僕はてっきりウォズニアックみたいなゴリバチギークおじちゃんだと勝手に想像していました。日本人も捨てたもんやないで!開発者のtkyajiさんこの度は本当にありがとうございました。そしてこれからもプラグインを使用させていただきます。

 

f:id:team-bluecode:20170628194154p:plain

ここではimage-pickerというプラグインとの併用による動作不具合の報告がコメントされていますが、Cameraプラグインについても同じなのではないかと考えたわけです。

 

上記にリンクを貼ったtkyajiさんのQiitaにも丁寧に書かれていますが、Cordova crypt file pluginはデフォルトでhtml,htm,css,jsファイルを暗号化します。

f:id:team-bluecode:20170628195826p:plain

正規表現で暗号化対象の拡張子を指定していますね。

 

よってデフォルトのままの状態でプラグインをインポートしビルドを行うと、自分たちで作成したファイル以外のファイルについても暗号化処理が実行されます。

ここにCameraプラグインが動かなくなった原因がありそうな予感(6sense)がしたので、暗号化するソースを指定して再ビルドを行うとうまくいくのではと考えました。

今回、Yourshelfでは自分たちで作成したソース(nifty backendのキーを含む)のみ暗号化できれば必要十分だったので、暗号化対象に作成ソースのみを指定することにしました。

暗号化対象の指定方法は下記通り、

Github(https://github.com/tkyaji/cordova-plugin-crypt-file)からプラグインをダウンロード

②ダウンロードしたzipファイルを解凍し、フォルダの直下にあるplugin.xmlファイルを開く。

③ファイルを開いたらソース下部にあるincludeタグに暗号化処理を行いたいファイルを指定していく。(下記イメージ参照)

※逆にこのファイルだけ対象外にしたいって場合、excludeタグに暗号化の対象外にしたいファイルを指定していけば良いです。

f:id:team-bluecode:20170628200753p:plain

※少々力技ですがsample.jsを暗号化対象に含めたい場合、この書き方で指定を実現できます。

他のやり方がわからず、正規表現でもこの方法で1ファイルごとの指定が実現できたため、この方法でぶっちぎりました。ゴリ。他に正攻法の指定方法ご存知の方いましたらお教えくださいお願いします。

 

 plugin.xml編集後、再度暗号化プラグインをフォルダごと圧縮(zip化)し、MonacaクラウドIDE上からインポート(Cameraもインポート)し、再ビルドすると。。。

 

 

「写真投稿機能動いたデェ〜〜〜!!!」

 

いやー良かったです。一時はどうなるかことかと思いました。

同じくアプリ完成したけど、暗号化時に死にたくなっている開発者の方いましたら(いないか?w)、この記事を参考にしてみてください。竹原ピストルよろしく、ノックダウンした可愛い我が子(作ったアプリ)が再び呼吸を始めることができるかもしれません。