今週はずっと、monacaアプリのリリース関係で試行錯誤しています。
monacaはベースにCorvodaという開発フレームワークを利用しているのですが、そのバージョンが頻繁に変わります。そしてApp StoreもGoogle Playも仕様がアップデートするので、Corvodaのバージョンアップをして、アプリを改修しないと、アップデート版がリリースできないのです。
今回はCorvoda6.5→7.1にアップデートして改修し、そのプログラムをビルドし、そのapkをGoogle Play Consoleにアップしたらエラーが出ました。
インストール可能な端末のタイプが制限されました警告:
この APK を無効にすると、アプリを新規インストールできる端末のタイプが制限されます。
ヒント:
これが意図しない変更である場合は、新しいリリースでこの APK を保持するか、現在サポートされているすべての端末を新しい APK でもサポートするようにしてください。
謎すぎるメッセージは、大抵の場合、公式サイトの説明は意味不明。
したがってエラーメッセージをコピペしてGoogle先生で検索します。すると多くの場合、IT向け質問サイトのQiitaかTeratailがヒットします。
今回はTeratailで答えが見つかりました。
GooglePlayConsoleにて「製品版として公開」が押せない
https://teratail.com/questions/116500
要は、Corvodaを7にすると、バージョンコードが6桁から5桁に変わってしまうため、Googleとしてはバージョンが低くなってしまうのでダメ、と判断する様子。
なので、Monacaのビルド設定(アプリの設定>Android>バージョンコードを指定)で、手動でバージョンコードを1桁追加する必要があるようです。
*現在のバージョンコードを調べる
基本的にはmonacaでAndroidアプリを更新リリースする人は100%直面する問題だと思うのですが、なせmonaca側が自動修正するように直しておかないのかな。できるエンジニアには常識なのかな?
余談ですが、iOS向けは「ビルドの環境設定」で「Xcode10.1」にしておかないと、App Storeに弾かれます。
monacaは月額有料サービスなのですが、すでに使えなくなったCrosswalkの説明があるなどマニュアルは古いデータが多ので、いろいろ時間がかかります。
ちなみに今回の改修は、プッシュ通知で利用しているGCM(Google Cloud Messeging)という仕組みが、FCM(Firebase Cloud Messeging)にアップデートされたため、対応せざるを得なくなったために行ないました。
どこのIT会社でもそうですが、伸びているIT会社、強いプラットフォーム会社は、現ユーザーの利便性よりも、仕様のアップデートを優先します。ユーザーは他に強力な選択肢がない限りプラットフォーマーには逆らえないので、結局ユーザーが振り回されるのだけど、これは宿命なのだろうと思います。
ちなみにmonacaもcordovaがどんどんアップデートするから、日本へのローカライズが間に合わないのだろうと推測。
やっぱりネイティブで開発した方が早いかも。