MonacaやCordovaで開発したアプリの最大のデメリットは、apkファイルを抽出してZIPで解凍すると、HTMLやCSS、JavaScriptなどのコード、ファイル構成が丸見えとなってしまう点である。
つまり、時間をかけて必死に開発を行っても、ZIPで解凍すれば簡単にコピーされてしまうし、コードに記載したクライアントキーやAPIキーなどの情報も知られてしまう。

リバースエンジニアリング対策として、ファイル暗号化プラグイン「cordova-plugin-crypt-file」をオススメする。
※MonacaのFreeプランは、プラグイン使用不可なので注意。

このプラグインは、HTMLやCSS、JavaScriptのファイルを暗号化するわけだが、そのまま使用するとさまざまな問題が発生する。

apkファイルのサイズが大きくなる。
Onsen UIなどのフレームワークも暗号化されるため、初期動作が遅くなる。
Onsen UI V2の場合、material系の動作が安定しない症状が見られる。

この問題を解決するには、暗号化対象外のファイルやフォルダを指定すればよい。
「cordova-plugin-crypt-file」の「plugin.xml」をエディタで開き、暗号化対象外のファイルやフォルダを追加してビルドする。
ピリオドを指定する場合、「\.」とする必要があるので注意が必要。
下記の例では、Onsen UIやAngular JSのファイルは暗号化する必要がないので、対象外としている。
また、ビルド時に追加されるファイルやフォルダも対象外としている。
この状態でリリースビルドした結果、約40%ファイルサイズを小さくすることができた。

変更前

変更後

暗号と認証 最強の指南書 (日経BPムック 日経ITエンジニアスクール)

新品価格
¥2,640から
(2019/11/8 13:00時点)

【Monaca】リバースエンジニアリング対策「cordova-plugin-crypt-file」注意点