アプリを Android 16(API レベル 36)対応にしてストアに申請、無事公開まで終わったのに、Play Console 上には対象 API レベルの警告(アラート)が出たまま、という状態になりました。
原因は製品版そのものではなく、内部テストなどの別トラックに残っていた古いビルドでした。
前提知識:Android のバージョンと API レベル
Android 16 は API レベル 36 にあたります。Google Play は、新規アプリ・アップデートの提出に「対象 API レベル 36 以上」を要求しています(既存アプリの最低ラインは別途 35 以上、猶予期間あり)。ここがずれていると警告が出ます。
Play Console には配信先として次のようなトラックがあります。
製品版(一般ユーザー向け)
オープンテスト
クローズドテスト
内部テスト
Play Console の警告は、公開中の製品版だけでなく、これらすべてのトラックを見て判定されます。 製品版だけ最新化しても、内部テストやクローズドテストに昔のビルドが「有効」なまま残っていると、警告は消えません。
製品版は最新の対象SDK 36 のビルドになっていたのに、内部テストトラックには古いビルド(対象SDK 35)が有効のまま残っているという、いつものパターンでした。
確認方法
Play Console の「テストとリリース」→「App Bundle エクスプローラ」を開くと、過去にアップロードしたすべてのビルドと、それぞれの対象SDK、どのトラックで有効になっているかを一覧で確認できます。
ここで、製品版以外のトラックに古い対象SDKのビルドが「有効」で残っていないかをチェックします。
直し方:空リリースで上書きする
古いビルドが有効なトラックを見つけたら、そのトラックを一旦「空にする」ことで無効化できます。手順は次の通りです。
対象トラック(例:内部テスト)で「新しいリリースを作成」を開く
App Bundle は何もアップロードしない
画面に「含まれない App Bundle(APK)」として、現在有効な古いビルドが表示される
そのまま保存・公開する
この操作をすると、そのトラックの最新リリースが「中身なし」になり、古いビルドが配信対象から外れて非アクティブになります。ファイルを削除するわけではなく、あくまで新しい(空の)リリースで上書きする、という考え方です。
公開後は審査が入ることがあり、反映まで少し時間がかかります。
アプリを複数運用している場合
個人開発で53本のアプリを抱えており、1本ずつ手作業でやるのは非現実的でした。そこで Google Play の Developer API(Android Publisher API)を使い、各アプリのトラック状況を自動で調べ、古いビルドが残っているトラックだけ空リリースを流すスクリプトをAIが組みました。
やっていることは手動操作と同じで、「そのトラックに、ビルドを含まないリリースを送る」だけです。手動で1本試して動作を確認してから、残りをスクリプトで一括処理する、という進め方が安全です。
まとめ
Play Console の対象APIレベル警告は、製品版だけでなく全トラックが対象
「App Bundle エクスプローラ」で全トラックの状態を横断チェックする
古いビルドが残るトラックは、空リリースの上書きで非アクティブ化できる