Anksです。記事をご覧いただきありがとうございます。
先日、GooglePlayから、
公開中のアンドロイドアプリ(→紹介ページはこちら)に関して、
「[重要] 2020 年 11 月 2 日までに Android の targetSdkVersion の更新をお願いします」というタイトルのメールが届きました。
内容としては、
「アプリのターゲットを Android 10(API レベル 29)以上に設定してください」
ということで、
アプリ初リリースしてから約1ヵ月後、さっそくの出来事に若干戸惑いつつ、
今回は、このAPIレベルを29に上げてアプリをアップデートした話です。
(あくまでこの流れで自分が出来たという話なので、今後のための備忘録として載せておきます。)
まず、自分のアプリの情報をGoogle Play Consoleで確認すると、
確かに、、、「対象SDK:28」となっております。
この対象SDKを29に上げたaabまたはAPKファイルをUnityでビルドして、
アップデートをリリースしなければなりません。
そこでさっそく、Unity側でAPIレベルの設定箇所が無いか探すことに。
すると、File>Build Settings>Player Settings>Other Settingsに、
「Target API Level」の設定箇所を発見。
これを「API level 29」に変更してビルドするだけで終了かな、と思いきや、、、
「Required API level 29」とのエラーが。どうやら、API level 29に対応するSDKが入っていないらしい。
そこで、「Update Android SDK」をクリックすると、、、
「Unable to install additional SDK platform. Please run the SDK Manager manually…」とのエラーメッセージが。
要するに、
「追加のAPI level 29のSDK platformがインストールできなかったから、自分でSDK Managerを開いて手動でセットしてね」
と言われてしまっている。
そこで、Android StudioのSDK Manager経由で手動で行う必要がありそう。
Android Studioを起動して、右下の「Configure」からSDK Managerを開く。
↓SDK Manager起動後↓
すると、
どうやらAndroid Studio側では、
すでにAndroid 10(API Level 29)対応のSDKがインストールされている様子。。。
(インストールされていない場合は、対象のSDKのチェックボックスにチェックを入れて、右下のOKボタンをクリックすると、インストールができると思います。)
そこで、
上部の「Android SDK Location」にあるSDKの指定パスに飛んでみると、
先ほどUnityのエラーメッセージに記載のあった「platforms」という名前のフォルダがあるので、開いてみる。
すると、「android-29」を発見。
これがおそらく、APIレベル29に対応するSDK platformと思われるので、
コピーしてUnity側にも移してあげるとうまく行きそうな予感が。
Unity側でのSDKの指定パスは、
Edit>Preferences>External Toolsで確認できるので、
これを「Copy Path」してフォルダを開いてみる。
すると、先ほど同様、フォルダ内に「platforms」があるので確認してみると、
ここには「android-28」が。
このUnity側の「platforms」フォルダ内にも、
先ほどAndroid Studio側で見つけたAPIレベル29対応の「android-29」をコピーして、追加してみる。
これで再度、Build Settingから「API level 29」を指定してビルド実行すると、
無事、ビルドできました。
ビルドしたaabファイルで無事アップデートも完了し、
Google Play Console上の情報も、「対象SDK:29」に。
もしかすると今回、
platform以外のファイル群も更新が必要だったのかもしれませんが、
下手にアップデートをして不具合が生じるリスクも怖くて触れず。
いずれにしても、
今後もUnityやAndroid側のバージョンアップがあった都度、また対応が必要になると思い、
現時点ではこれだけの対応で完了させました。
ですので、あくまで私個人としての今回の対応の備忘録になります。
最後までお読みいただき、ありがとうございました。