[Unity] Unity5でAPI Level 26対応

まぁUnityを最新版にあげてビルドすればいいところですが。

先日、プライバシーポリシーな件でのリジェクトがあり、対象のひとつがUnity5.3.5で最終ビルドを行ったものだったので、できればそのバージョンのままビルドしたいなぁと。

関連記事 →→ [Android] プライバシーポリシー対応

古いプロジェクトをできれば同じ状態でビルドしたい。

Unityバージョンあげてビルドはできました。
しかしREAD_PHONE_STATEのパーミッションが勝手に付いていたのが気になり、PlayGames連携がクラッシュ。

リビルドしただけなんですけど。。(_ _) ということで元に戻す。

Unity5は、Androidのビルドターゲットの指定項目が以下の画像のように無く(直近の2018ではあるのを確認している)、API Level 26以降というGoogleストア要件を満たす方法がよくわからない。

Unity5.3.5を開くものの、最近のAndroid環境でのビルドはなんだかうまくいかない。

CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details.
/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir=”/Users/cocoa/Library/Android/sdk/tools” -Dfile.encoding=UTF8 -jar “/Applications/Unity5.3.5/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar” –

sdkのtoolsが新しすぎる雰囲気?

関係ないけど、Oculusのビルドでも、ビルドツールのバージョン合わないとかありましたね。

READ_PHONE_STATEを見ていた時に、toolsのダウングレードが載っていたので、試してみる。

参考
Unity Android に READ_PHONE_STATEパーミッションが付与されてしまう teratail
UnityでAndroidをビルドしたときに勝手にREAD_PHONE_STATEが付与される Qiita

色々と自己責任でお願いします!

上記記事にあるように、旧toolsをダウンロードして、置き換えました。
Android SDK Tools25.2.5
https://dl.google.com/android/repository/tools_r25.2.5-macosx.zip

元々のはまた戻せるようにリネームし、ダウンロードして解凍したtoolsフォルダを配置。

フォルダの中身結構違いました。
このtoolsの利用で、自動的なREAD_PHONE_STATE追加もなくなった模様。

あと、Playゲーム周り!

Play Games Plugin for Unity
https://github.com/playgameservices/play-games-plugin-for-unity/blob/master/UPGRADING.txt

入れてるもの、Assets/PlayServicesResolverを削除し、旧versionを入れると以下の感じになり、ビルド後、認証ダイアログは出るように。

最新だと、15.0くらいのが入ってたので、バージョンとしてはかなり古い。

Play Games Pluginと他の何かしらバージョンが合っていなかったのは結果としてわかります。

apkビルド後、ターゲットSDKはどうなってるのか?
aaptコマンドでapk内を見れるようだ。
~/Library/Android/sdk/build-tools/入っているバージョン/aapt l -a 対象の.apk | grep Version

A: platformBuildVersionCode=(type 0x10)0x1a (Raw: “26”)
A: platformBuildVersionName=”8.0.0″ (Raw: “8.0.0”)
A: android:name(0x01010003)=”com.google.android.gms.games.unityVersion” (Raw: “com.google.android.gms.games.unityVersion”)
A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1a
A: android:glEsVersion(0x01010281)=(type 0x11)0x20000

platformBuildVersionCodeが26
targetSdkVersionも同じ値で26となっているのを確認。

PCにいれているlatestが使われたのかな?と。多分きっと。
この記事は、この1行だけでよかったかもしれません。

toolsフォルダは、ビルド後、元々のに戻しました。
アプリ動作も問題ないため、完了。

旧バージョンで対応してみたということで、大まかに記録はしましたが、結果として新しいUnityベースで対応の方がよかったですね。あんまりよくなさそうなことを色々とやった感じなので。うまくいった今、やり直す気力はなく、次回があればそっちへ。。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする