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

Android

 Google Playが要求するTarget API LevelがAPI Level 28以上になり、それ以下のLevelだとストアにはじかれることになりました。また、2020年11月からはTarget API LevelがAPI Level 29以上となります。今回はUnity(Windows)でAPI Levelを上げる方法についてまとめておきます。

Goal

UnityでAndroid API Level29でビルドする!




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のままでよいかと思います。

ビルド

 設定が終わったらビルドしてみます。すると以下ように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.

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

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を管理者権限で起動していないと、ファイルの編集作成がアクセス権の関係からうまくいかないようです。コマンドプロンプトを管理者権限で開いてインストールする方法をお勧めします。

コメント

タイトルとURLをコピーしました