UnityでAndroid 10(API レベル 29)以降を導入

私の環境

OS:Windows 10
Unity Ver:2019.1.3f1 , 2019.4.8f1 , 2020.1.2f1
日付:2020/8/22

UnityのAndroid Buildで指定できるのはAPI 28(Android 9)まで

Google Play ストアに新規でアプリを公開する際に、API 29以上じゃないと怒られるようになりました。
googlestore

api_google

どうも2020/8/3から強制的にそうなったようで、私がこの沼にハマったのは8/22。なんとタイミングの悪いことか・・・おかげで情報がほとんどなく数時間消費してしまいました。

というのも、よりにもよってUnityのAndroid Buildで指定できるのはAPI 28(Android 9)までで、API 29(Android 10)で強行しようとするとこんなエラーがでます。

"Unable to install additional SDK platform. Please run the SDK Manager manually to make sure you have the latest set of tools and the required platforms installed. See the Console for details."

api29

自分でSDK Manager使ってなんとかしろということです。

SDK Managerの場所をみつけてAPI 29(Android 10)以降を導入

まずUnityがインストールされているフォルダを見つけ、その中のSDK Managerの場所をみつけます。
2020年現在、UnityHubで管理している方が多いでしょう。Unity 2019.4.8f1ならば
C:\Program Files\Unity\Hub\Editor\2019.4.8f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\bin
こんなフォルダが作られているはずです。

このフォルダ内にsdkmanager.batというファイルがあることを確認します。
次にコマンドプロンプトを管理者権限で起動

cd C:\Program Files\Unity\Hub\Editor\2019.4.8f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\bin

でディレクトリを移動して下記コマンドを1行ずつ実行
sdkmanager "build-tools;29.0.3"
sdkmanager "build-tools;30.0.2"
sdkmanager "platforms;android-29"
sdkmanager "platforms;android-30"

これでAPI 29とAPI 30がUnity 2019.4.8f1で使えるようになりました。

api30


ちなみにsdkmanager --listで導入できるパッケージ一覧が表示されます。

cmd

ここからさっきのAPI 29と30を拾ってきてました。他のはよくわからない・・・

デバッグを無効にする必要があります

やっと上のエラーを解決してもまだまだたくさんトラブルが降ってきます。タイトルとはずれますが、直後にこのトラブルに遭遇したので一応メモ

debug


"デバッグ可能なAPKまたはAndroid App Bundleをアップロードしました。セキュリティ上の理由により、Googl Playに公開するにはデバッグを無効にする必要があります。"

これはここを見て解決
https://teratail.com/questions/245964

別のバージョンコードを使用する必要があります

ここでさらに次のトラブルが降ってきます。
versioncode_

"バージョンコード 4 のAPK または Android App Bundle がすでに存在するために、別のバージョン コードを使用する必要があります。 "

これは簡単で、UnityのBuild Settings→Player Settings→Playerで

versioncode

ここの数字を変えてBuildしなおせば良いです。


最後に


※以上の知見は2020/8/22時点での対処法です。