JSでUWPアプリ開発試していて、appxbundle、appxuploadまで作ってみたのですが、なんかリリースがためらわれる状況に陥ってます。
ちなみにロジックはJSだけどAPIのエンドポイントだとか簡単には見せたくない箇所が少しあって、AndroidとiOSではそういうのをネイティブ側に書いたりしていました。
ここが残念
- VisualStudioで生成したappxをローカルにインストールして、WindowsAppsフォルダを覗いたら生のjsが入っていた。
- WindowsAppsフォルダのjsを直接書き換えたらアプリに反映された。あ、これ
改竄し放題か!→ ストアからインストールしたアプリのjsは改竄できない模様。後述。 - ストアから落としたJSのUWPも生のjsが入っていた。せっかくストア経由なんだからバイナリ化して暗号化でもしれくれたらいいのに。
- cordova-plugin-dialogsのダイアログがネイティブじゃなかった。HTMLで描いてるぅー。えー。地味にショック!w
- CordovaもConfig.xmlからappxmanifestを生成するだけで、UWP向けの考慮が足りないから必要なappxmanifestができない。だったら最初からappxmanifest書かせてくれよと。
- パッケージにConfig.xmlが混入していて、ビルド環境のAppPackagesのフルパスが入っていた。C:\Users\なんたら とかやめてくれw
さてどうしたものか・・・
.NETネイティブでよしなにバイナリになるのかなーって思ってたんだけど甘かったですね。
Cordovaの不備はMicrosoftが悪い意味でオープンソースに丸投げ。
もうC#でWebViewアプリ書いたほうがよいのかな?
その後
自作アプリのストア登録が完了したので、ストアから落としてみたのを同じようにWindowsAppsフォルダ開いてjsを弄って・・・あれ。書き換えられないや。
Designing a simple and secure app package – APPX
ストア配布アプリのJS改竄は確かにできないみたいでちょっと安心。