MonacaアプリのAndroid 10(APIレベル29)対応について

ビビンコの方でこっそりスマホアプリを公開しています。スマホに搭載されたセンサーを使ってデータを取得し、Watson IoT Platformに送信するだけという実験的なアプリです。もともとは、IoTをテーマにした研修での体験向けに作ったものです。

Monacaを使って開発したので、Android向けとiOS向けの両方を、それぞれのマーケットで公開しています。研修で使うとなると、どちらかのデバイスに限定することができないので、両対応することにし、その開発をサクッと行うためにMonacaを使ったというわけですね・・・。

で、アプリを公開しているとGoogle Playからディベロッパー向けにこんなメールが届きまして。

2020 年 11 月 2 日以降に Google Play で配信しているアプリおよびゲームを更新する場合、Android 10(API レベル 29)以上をターゲットとすることが必須となりますので改めてご連絡いたします。APK をアップロードする際は、Google Play の対象 API レベルの要件を満たしている必要があります。2020 年 11 月 2 日以降、Google Play Console から targetSdkVersion が 29 未満である新規の App Bundle や APK は送信できなくなります。ただし、Wear OS アプリには API レベル 29 を必須とする要件は適用されません。また、Google Play ストアの既存の掲載情報には影響しません。

最新の API レベルをターゲットにするようアプリを設定することで、ユーザーのセキュリティとパフォーマンスを大きく改善し、また古い Android バージョンや下位の minSdkVersion でもアプリを動作させることができます。

重要: 対応が必要です

2020 年 11 月 2 日までにアプリのターゲットを Android 10(API レベル 29)以上に設定してください。アプリのターゲット API レベルを変更し、上記の要件を満たす方法はこちらの移行ガイドをご参照ください。

APIレベルを上げなさいよというわけです。上げないからいま公開されているアプリが公開停止になるというわけではないようですが、今後のリリースではAPIレベル29にしないといけないようです。

MonacaでAPIレベル29にする

Cordovaのバージョンが上がったりすると、MonacaでもプロジェクトのCordovaのバージョンアップが可能になります。Monacaで使用可能な最新のCordovaバージョンは9.0.0で、Androidプラットフォームは8.0.0。これだとAPIバージョンは28になります。これを、どうやってAPIバージョン29にするか。

こちらのディスカッションを見ると、どうやらconfig.xmlandroid-targetSdkVersionを変えるだけで良いようです。

具体的には、Monaca IDEでconfig.xmlを開き、このようにします。

  <platform name="android">
    <icon src="/res/android/icon/ldpi.png" density="ldpi"/>
    <icon src="/res/android/icon/mdpi.png" density="mdpi"/>
    <icon src="/res/android/icon/hdpi.png" density="hdpi"/>
    <icon src="/res/android/icon/xhdpi.png" density="xhdpi"/>
    <icon src="/res/android/icon/xxhdpi.png" density="xxhdpi"/>
    <icon src="/res/android/icon/xxxhdpi.png" density="xxxhdpi"/>
    <preference name="android-targetSdkVersion" value="29"/>
  </platform>

最後のところのandroid-targetSdkVersionのvalueを29にすれば良いようです。

これでAndroidアプリのリリースビルドを行い、出来上がったapkファイルをGoogle Play Consoleの「アプリのリリース」画面でアップロードすると、対象SDKが29になっていることが分かります。

今回は新たな機能などはないので実施の審査依頼までは行いませんが、実際に機能追加などを行ってバージョンアップリリースを行う際も、とりあえずはこれで問題なさそうです。

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。画像認識モデルを活用したアプリや、生成AIを業務に組み込むためのサービス「Gen2Go」の開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。