Gradle テンプレートは、Gradle で Android アプリケーションをビルドする方法を設定します。各 Gradle テンプレートは 1 つの Gradle プロジェクトを表します。Gradle プロジェクトは他の Gradle プロジェクトを含むことや、他の Gradle プロジェクトに依存することができます。
Gradle テンプレートは以下のファイルで構成されています。
ファイル | 場所 | 含まれるもの |
---|---|---|
baseProjectTemplate.gradle |
エクスポートしたプロジェクトの root/build.gradle フォルダー |
最終的な Gradleプロジェクトのすべてのモジュールに影響する設定情報が含まれています。どの Android Gradle Plugin のバージョンを使用するか、また java プラグインの場所を指定します。場所は、このプロジェクト内のオンラインレポジトリと java プラグインの組み合わせです。 |
launcherTemplate.gradle |
エクスポートしたプロジェクトの root/launcher/build.gradle folder フォルダー |
Android アプリケーションのビルド方法 (バンドル、署名、APK 分割) のインストラクションが含まれています。unityLibrary プロジェクトに依存し、.apk ファイルまたはアプリケーションバンドルを出力します。 |
mainTemplate.gradle |
エクスポートしたプロジェクトの root/unityLibrary/build.gradle フォルダー |
Unity をライブラリにしてビルドする方法のインストラクションが含まれます。 .aar ファイルを出力します。Unity エディターで Unity テンプレートをカスタムテンプレートでオーバーライドできます。詳細は、このページのカスタムの Gradle ビルドテンプレートの提供についてを参照してください。 |
libTemplate.gradle |
任意 |
Android Library Project プラグインに build.gradle ファイルが含まれていない場合、Unity は libTemplate.gradle ファイルをテンプレートとして使用し、ファイルを生成します。Unity が build.gradle ファイルを生成した後、またはプラグインのディレクトリに既に存在する場合、Unity はプラグインを Gradle プロジェクトへコピーします。 |
settingsTemplate.gradle |
エクスポートしたプロジェクトの root/settings.gradle ファイル |
Gradle ビルドシステムがプロジェクトをビルドするときに含むべきモジュールの名前を指定します。Unity テンプレートを Unity エディターのカスタムテンプレートで上書きすることができます。詳細については、このページのカスタム Gradle ビルドテンプレートの提供についてを参照してください。 |
gradleTemplate.properties |
エクスポートしたプロジェクトの root/gradle.properties ファイル |
Gradle ビルドシステムを設定し、Java 仮想マシン (JVM) ヒープ のサイズなどのプロパティを指定します。 |
Unity が生成する Gradle プロジェクトファイルをより細かく制御するには、Unity のデフォルトの Gradle テンプレートファイルを上書きします。これは、以下のように行います。
以下の変数をカスタム Gradle テンプレートファイルで使用できます。
変数 | 説明 |
---|---|
DEPS | プロジェクト依存関係のリスト。プロジェクトが使用するライブラリのリスト。 |
APIVERSION | ビルドする API バージョン。Unity はこれと TARGETSDKVERSION を同じ値 (Android Player Settings の Target API Level) に設定します。 |
MINSDKVERSION | アプリケーションをサポートする API の最低バージョン。 |
BUILDTOOLS | 使用する SDK ビルドツール。 |
TARGETSDKVERSION | ターゲットとする API バージョン。Unity はこれと APIVERSION を同じ値 (Android Player Settings の Target API Level) に設定します。 |
APPLICATIONID | Android アプリケーション ID (例えば com.mycompany.myapp) |
MINIFY_DEBUG | デバッグビルドを小さくするかどうかを示します。 |
PROGUARD_DEBUG | デバッグビルドの小型化のために ProGuard を使用するかどうかを指定します。 |
MINIFY_RELEASE | リリースビルドを小型化するかどうかを示します。 |
PROGUARD_RELEASE | リリースビルドの小型化のために ProGuard を使用するかどうかを指定します。 |
USER_PROGUARD | 小型化に使用するカスタム ProGuard ファイルを指定します。 |
SIGN | このビルドが署名されている場合は、signingConfigs セクションを行ってください。 |
SIGNCONFIG | ビルドが署名されているかどうかを示します。このプロパティが signingConfig.release に設定されている場合、ビルドは署名されています。 |
DIR_GRADLEPROJECT | Unity が Gradle プロジェクトを作成するディレクトリ。 |
DIR_UNITYPROJECT | Unity プロジェクトのディレクトリ。 |
PLAY_ASSET_PACKS | アプリケーションに加える アセットパック を指定します。 |
カスタムの settingsTemplate.gradle
ファイルには、以下の変数を加えることもできます。
変数 | 説明 |
---|---|
INCLUDES | Gradle プロジェクトに含む Android ライブラリプラグインのリスト。 |
カスタムの gradleTemplate.properties
ファイルには、以下の変数を加えることもできます。
変数 | 説明 |
---|---|
JVM_HEAP_SIZE | Java 仮想マシン (JVM) ヒープ](https://www.ibm.com/docs/en/integration-bus/10.0?topic=development-jvm-heap-sizing) の最大サイズ。 |
STREAMING_ASSETS | Steaming Assets フォルダーにある、Gradle が圧縮すべきでないファイルのリスト。 |
ADDITIONAL_PROPERTIES | 以下のようなアプリケーションの追加プロパティが含まれます。 • Gradle テンプレートのバージョン。 • Unity プロジェクトのパス。 • アプリケーションが Android App Bundle 公開形式を使用する場合、ネイティブライブラリを圧縮しておくことを示すフラグ。 |
Unity が組み立てた後に Gradle プロジェクトを変更するには、IPostGenerateGradleAndroidProject を継承するクラスを作成し、OnPostGenerateGradleAndroidProject 関数をオーバーライドしてください。この関数は、パラメーターとして unityLibrary モジュールへのパスを受け取り、それを使って C# スクリプトを通してアプリケーションのマニフェストとリソースにアクセスできます。
注意: Unity はインクリメンタルな (増分) ビルドパイプラインを使用するようになり、同じ Gradle プロジェクトを連続したビルドに再利用するようになりました。これは、Unity がビルドごとに新しい Gradle プロジェクトを作成しなくなったため、この API を使用して行った変更が蓄積されることを意味します。例えば、この API を使って Gradle プロジェクトにファイルを追加する場合、最初のビルドは期待通りに動作しますが、2 回目のビルドではそのファイルはすでに存在しています。2 つ目の例は、この API を使用して特定のファイルに許可を追加する場合です。各連続するビルドは、許可のための別のエントリーを追加します。行いたい変更が、まだビルドに存在しないことを確認することが非常に重要です。