【Unity】 Android SDK Version を上げる時の注意点!

Android

UnityでAPI Level( Android SDK Version )を上げる手順にとそもそもAPI Levelとは何かについて説明します。

Google Playが要求するTarget API LevelがAPI Level 28以上になり、それ以下の Android SDK Version だとストアにはじかれることになりました。また、2020年11月からはそのTarget API LevelがAPI Level 29以上でないと登録できないようになります。




そもそもTarget API LevelとMinimum API Levelとは何か?

 まずはTarget API LevelとMinimum API Levelの違いについて説明します。

  • Minimum API Level
    インストールする端末は最低限このAPI Levelが動作するAndroid OSでなければなりません。このLevelより古いOSへのアプリのインストールはシステムによって拒否されます。
  • Target API Level
    このアプリを動かしたいAPI Level。例えば、このAPI Levelよりも新しいOSの端末にアプリをインストールした時、その新しいOSはこのAPI Levelを配慮して、互換を保つように動作してくれます。
    このAPI Levelよりも古いOSの端末にアプリをインストールした時はそのOSの最大のAPI Levelで動作します。

Target API Levelを引き上げることは新しいOSをもったユーザーに対してなるべく最新のAPIで動作させてあげる目的があります。

逆に、Target API Levelが低いと、いくらOSが最新でも古いAPIを使用することになり、最新の機能が使用できないということになります。

Google Playへのアップロード時に発生するエラー

APIレベルの要件を満たしていないアプリをGoogle Playにアップロードしようとすると以下のエラーが発生します。

現在、お客様のアプリは API レベル 28 を対象にしています。
セキュリティとパフォーマンスが最適化された最新の API を利用するには、
API レベル 29 以上を対象にする必要があります。
アプリの対象 API レベルを 29 以上に変更してください。

アプリを更新した際に「8/1からTarget API Level 29以上でないと登録できません」というWarningが出ていたので、それが適用された形になります。

UnityでAPI Levelを上げる手順

Player Settingsの設定

Target API Level 29でビルドするためにPleyer Settingを変更します。

Build Setting→Other Settings→Target API Levelを変更します。Minimum API LevelはTarget API Level以下のAPI Levelを指定することになります。

変更前のサポートAPI Levelのままでよいかと思います。

Player Settingsの設定

ビルドでエラーが出る場合

設定が終わったらビルドしてみます。すると以下ようにAndroid SDKがありませんというエラーが出ることがあります。

ビルドエラーダイアログ
Android SDK is missing required platform API
Required API level 29.

このままUpdate Android SDKを選択してSDKを入手しようとすると、以下のエラーとなります。

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.

コンソールのログを見ると、SDKをインストールするためのコマンドが表示されています。

C:/Program Files/Unity/Hub/Editor/2019.4.3f1/Editor/Data/PlaybackEngines/AndroidPlayer\SDK\tools\bin\sdkmanager.bat "platforms;android-29"

SDKのインストール

コマンドラインから先ほどのコマンドを実行してSDKをインストールしてみます。ライセンス許可でyを入力した後、以下のメッセージが出力されます。

Accept? (y/N): y
Warning: Failed to read or create install properties file.

アクセス権の問題を疑い、管理者権限でコマンドプロンプトを起動したところ無事SDKのインストールが完了しました。

January 16, 2019
---------------------------------------
Accept? (y/N): y
[=======================================] 100% Unzipping... android-10/framework
PS C:\Program Files\Unity\Hub\Editor\2019.4.3f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\bin>

インストール後、Unityでのビルドも無事完了しました。

おわりに

今回はTarget API Levelの変更について説明しました。Target API LevelとMinimum API Levelを理解しておくことが大事です。

Windows Unityで、Unity付属のAndroid SDKをアップデートする際はUnityを管理者権限で起動していないと、ファイルの編集作成がアクセス権の関係からうまくいかないようです。

エラーとなる場合はコマンドプロンプトを管理者権限で開いてインストールすると回避できます。

コメント