UnityでAndroidビルドをする方法
概要
UnityでAndroidのバイナリ(apk)を作成する手順の紹介です。
前提
- Unity2018.4.6f1
- Mac
前準備
NDK、SDKのインストール
Androidのil2cppビルドをするためにはNDK、SDKが必要になります。 それぞれインストールします。
Android Studio(SDK)
Android NDK
JDKについては、Android Studioに同梱されているOpenJDKを使用しています。
Android Studioは実際に起動しないと最新のBuild-toolsやSDK Platformはインストールされません。
Toolsに関しては、androidコマンドが存在している25.2以下でないとビルドに失敗する可能性があります。
Preferencesの設定
Unity -> PreferenceからNDK、SDKのパスを設定します。 必要なNDKのバージョンはUnityごとに変わりますがここで確認できます。
余談
ここの設定はマシンで共通になるので、異なるUnityバージョンで必要なNDKが違ってビルドしたい場合は厄介になるかもしれません。
ここにはシンボリックリンクを記載しておいて、ビルド直前にシンボリックリンクと実際のパスを切り替えるくらいしか良い手を思いつきません。
ここまでがビルドの前準備になります。
ビルド
PlayerSettingsの設定
PackageNameやVersionCodeなどAPK作成に必要な設定をを行います。 Idenfication(PackageNameやVersionCodeなど) 一例
Configuration(IL2CPPやアーキテクチャなど) 一例
アイコンやkeystoreの設定もPlayerSettingsで行うことができます。 これらの項目はものによってはGradleプロジェクトで直接設定する方法もあります。アイコンなどは最新のUnityを使っていない場合は、Android側が要求するサイズを追従できず解像度が崩れる場合もあります。
BuildSettingsの設定
Build SystemをGradleにして、Export Projectにチェックを入れます。 チェックを入れることでGradleのプロジェクトをUnityが作ってくれます。 Export Projectのチェックを外すとapkだけが直接できあがります。
Expotボタンを押します。
エクスポートが完了したらgradle projectのrootに移動します。
ls build/ gradle.properties local.properties src/ build.gradle libs/ proguard-unity.txt
gradleビルド
gradleビルドをしていきます。
gradle build ...
gradleがインストールされていない場合はMacの場合はbrewでインストールできます。
brew install gradle
余談
複数人開発でそれぞれのマシンでビルドするような場合はgradlewを用意してGradleのバージョンを統一させる方法もあります。(別途記事にしたいと思っています)
gradleビルドが完了したらapkが作成できていることを確認します。
find ./ -name '*.apk' .//build/outputs/apk/release/app-release.apk .//build/outputs/apk/debug/app-debug.apk