Gradle は、複数のビルドプロセスを自動化し、一般的なビルドエラーの多くを防止するビルドシステムです。Unity はすべての Android ビルドに Gradle を使用します。Unity で出力パッケージ (.apk、.aab) をビルドするか、Unity から Gradle プロジェクトをエクスポートしてから、Android Studio などの外部ツールを使用してビルドできます。
トピックごとの詳細は、以下を参照してください。
Gradle のバージョンと Unity のバージョンの互換性は、以下の表の通りです。
| Unity バージョン | Gradle バージョン | Android Gradle プラグインバージョン |
|---|---|---|
| 6000.0 | 8.4 | 8.3.0 |
その他の Unity リリースと互換性のある Gradle および Android Gradle プラグインのバージョンについては、2022.3、2021.3 を参照してください。
Gradle または Android Gradle プラグインのカスタムバージョンを使用したい場合は、Gradle と Android Gradle プラグインとのバージョン互換性について知ることが重要です。詳しくは、Gradle のアップデート を参照してください。
Gradle プロジェクトファイルは、含めるモジュールやビルド方法など、アプリケーションの様々な側面を設定します。
次の表は、Unity プロジェクト用に存在する Gradle プロジェクトファイルの一覧と、それぞれの役割を説明しています。
| Gradle プロジェクトファイル | 説明 |
|---|---|
| Main Manifest | このファイルには、Android アプリケーションに関する重要なメタデータが含まれています。Main/Unity Library Manifest の機能の詳細は、Unity Library Manifest を参照してください。 |
| Unity Launcher Manifest | このファイルには、Android アプリケーションのランチャーに関する重要なメタデータが含まれています。Unity Launcher Manifest の機能の詳細は、Unity Launcher Manifest を参照してください。 |
| Main Gradle | このファイルには、Android アプリケーションをライブラリとしてビルドする方法に関する情報が含まれています。 |
| Launcher Gradle | このファイルには、Android アプリケーションのビルド方法に関する指示が含まれています。 |
| Base Gradle | このファイルには、他のすべてのテンプレートおよび Gradle プロジェクトの間で共有される設定が含まれています。 |
| Gradle Properties | このファイルには、Gradle のビルド環境の設定が含まれています。これには、JVM (Java Virtual Machine) メモリ設定、Gradle が複数の JVM を使用してビルドできるようにするためのプロパティ、小型化を行うツールを選択するプロパティ、App Bundle のビルド時にネイティブ lib ファイル を圧縮しないためのプロパティが含まれます。 |
| Gradle Settings | このファイルには、アプリケーションに必要な外部依存関係を解決するためのアーティファクトリポジトリの宣言が含まれています。 |
| Proguard | このファイルには、小型化処理の構成設定が含まれます。残すべき Java コードが小型化によって削除される場合は、そのコードを残すルールをこのファイルに追加する必要があります。 |
Unity プロジェクトを Gradle プロジェクトとしてエクスポートすると、以下の 2 つのモジュールを持つ Gradle プロジェクトが Unity によって作成されます。
| ファイル | 説明 |
|---|---|
launcher |
Launcher モジュール とそれに関連するすべてを含むディレクトリです。 |
src
|
Launcher モジュールのソースコードとリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity はこのソースコードとリソースを main サブディレクトリに配置します。 |
main
|
Launcher モジュールのソースコードとリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity は main ソースセットのみをサポートします。ソースセットの詳細は、ソースセットの作成 を参照してください。 |
res
|
最終的なアプリケーションに含めるリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。このリソースとは、アプリケーションアイコン、アプリケーションがランタイムでアクセスするテキスト、およびアプリケーションのスタイルの設定記述です。 このディレクトリ内のリソースを指定するには、Android Player 設定 内で、アプリケーションアイコンとプロジェクト名を設定してください。 |
AndroidManifest.xml
|
Unity によって最終的な Android アプリマニフェスト 内にマージされる、標準の Android Gradle プロジェクトファイルです。Launcher モジュール固有の設定が含まれています。 重要: 複数のマニフェストファイルが同じ設定に異なる値を指定すると、マニフェストのマージプロセスが失敗し、手動修正が必要になります。マニフェストマージャーにルールを指定することで、マージ競合の解決方法を自動的に決定できます。この方法については、マニフェストファイルを管理する を参照してください。 このファイルの内容の変更方法は、Gradle プロジェクトファイルの修正 を参照してください。 |
build.gradle
|
Launcher モジュールのビルド方法が記された標準の Gradle プロジェクト build.gradle ファイルで、ビルドに加える依存関係のリストが含まれています。Unity では Launcher モジュールは unityLibrary モジュールに依存するため、Launcher モジュールをビルドすると、unityLibrary がビルドされ、最終結果に追加されます。 このファイルの内容を変更するには、カスタムの Launcher Gradle Template を用意します。 |
setupSymbols.gradle
|
Unity 固有のファイル。デバッグシンボルファイルを App Bundle に埋め込み、従来型の .so 拡張子のシンボルファイルを作成するためのビルドスクリプトが含まれています。 |
shared |
プロジェクト内の複数のモジュールに適用される共通の設定情報を格納するディレクトリ。 |
keepUnitySymbols.gradle
|
Unity 固有のファイルで、スタックトレースを解決するためのランタイムバイナリにデバッグメタデータを格納するスクリプトが含まれています。 |
unityLibrary |
unityLibrary モジュール とそれに関連するすべてを含むディレクトリです。 |
libs
|
unityLibrary モジュール用の Android Archive (.aar) および Java Archive (.jar) プラグインを格納する、共通の Android Gradle プロジェクトディレクトリです。 エクスポートされた Unity プロジェクトの場合、ここには unity-classes.jar と、Unity プロジェクト内のすべての .jar および .aar プラグインが格納されます。ノート: このディレクトリには Android Library Projects プラグインは格納されません。これらのプラグインは、別のモジュールとして Gradle プロジェクト内にコピーされます。 |
unity-classes.jar
|
Unity エンジンの使用する Java コードを格納する、Unity 専用の Java プラグインです。 |
src
|
unityLibrary モジュールのソースコードとリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity はこのソースコードとリソースを main サブディレクトリに配置します。 |
main
|
unityLibrary モジュールのソースコードとリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity は main ソースセットのみをサポートします。ソースセットの詳細は、ソースセットの作成 を参照してください。 |
assets
|
プロジェクトのアセットを格納する標準の Android Gradle ディレクトリです。Unity は Unity プロジェクトのリソースを bin サブディレクトリに配置します。 |
bin
|
標準の Android Gradle プロジェクトディレクトリです。Unity は、Unity プロジェクトのすべてのリソースをここに追加します。 |
java
|
unityLibrary モジュール用のコンパイルされていない Java ソースファイルを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity は、UnityPlayerActivity ソースファイルを格納するためだけにこのディレクトリを使用します。UnityPlayerActivity の拡張方法は UnityPlayerActivity の Java コードの拡張に関するドキュメント を参照してください。 |
jniLibs
|
unityLibrary モジュールの使用するネイティブコードライブラリを格納する、標準の Android Gradle プロジェクトディレクトリです。Unity は、libil2cpp、libmain、libunity Unity エンジンライブラリをこのディレクトリに配置します。また、すべての Native (C++) プラグイン もこのディレクトリに配置されます。 |
jniStaticLibs
|
unityLibrary モジュールが libil2cpp.so の作成に使用する baselib.a ライブラリを格納する、標準の Android プロジェクトディレクトリです。 |
res
|
最終的なアプリケーションに含めるリソースを格納する、標準の Android Gradle プロジェクトディレクトリです。エクスポートされた Unity プロジェクトの場合、unityLibrary モジュールの res ディレクトリには、unityLibrary モジュールが使用するスタイルの定義のみが含まれます。 |
AndroidManifest.xml
|
Unity によって最終的な Android アプリマニフェスト 内にマージされる、標準の Android Gradle プロジェクトファイルです。unityLibrary モジュール固有の設定が含まれています。 このファイルの内容を変更するには、カスタムの Custom Main Manifest を設定してください。 |
symbols
|
デバッグシンボル のビルド設定を使用してアプリケーションのシンボルファイルを生成する場合に Unity が追加するディレクトリです。このディレクトリには、デバッグメタデータと Unity ライブラリのシンボルテーブルセクションを含むファイルが格納されます。Android Studio でディレクトリパスを設定して、デバッグ中に関数名を解決できます。 |
build.gradle
|
unityLibrary モジュールのビルド方法が記された標準の Gradle プロジェクトの build.gradle ファイルで、ビルドに含める依存関係のリストが含まれています。Unityでは、unityLibrary モジュールは Unity プロジェクト内のすべての プラグイン に依存します。 このファイルの内容を変更するには、カスタムの Main Gradle Template を設定してください。 |
proguard-unity.txt
|
Unity の Java コード (unity-classes.jar プラグイン内のコード) の ProGuard 設定を格納する、Unity 固有のファイルです。設定は、Player 設定で Minification が有効になっている場合 (または Gradle ビルドファイルを手動修正して有効にした場合) に有効です。 |
build.gradle |
Gradle プロジェクト内のすべてのモジュールに影響を与える基本の Gradle ファイルです。Gradle プロジェクトで使用するプラグインのバージョンを指定します。Android Gradle プラグインがその一例です。 このファイルの内容を変更するには、カスタムの Base Gradle Template を設定してください。 |
proguard-user.txt |
プロジェクトの Java コードとサードパーティ製の Java プラグインの ProGuard 設定を格納する、Unity プロジェクト固有のファイルです。ProGuard-unity.txt 同様、Gradle は、小型化が有効にされた場合にこのファイルを使用します。このファイルを作成するには、Android Player 設定 で Custom Proguard File を有効にしてください。 |
gradle.properties |
アプリケーションのビルド方法を設定する標準の Gradle プロジェクトファイル。このファイルの Unity 固有のプロパティは、gradle.properties ファイルのプロパティ を参照してください。このファイルに追加できる Gradle プロパティは、Gradle プロパティファイル を参照してください。 このファイルの内容を変更するには、カスタムの Gradle Properties Template を設定します。 |
local.properties |
ビルドシステムの環境を設定する、標準の Android Gradle プロジェクトファイルです。Unity は、ここに SDK へのパスを指定し、エクスポートされた Gradle プロジェクトが Unity エディターと同じ SDK をデフォルトで使用するようにします。以前の Gradle バージョンでは NDK のパスもここで指定していましたが、現在は Launcher および unityLibrary モジュールの build.gradle ファイルで指定しています。 このファイルに追加できるプロパティは、Gradle プロパティファイル を参照してください。 |
settings.gradle |
Android Gradle プロジェクトを構成するすべてのモジュールを指定する、標準の Android Gradle プロジェクトファイルです。Unity がエクスポートするプロジェクトでは、通常、Launcher および unityLibrary モジュールのみを指定します。ただし、Unity プロジェクトが Play Asset Delivery を使用する場合は、各アセットパックが別々のモジュールになるため、このファイルにはそれらも追加されます。また、このファイルは、Gradle プロジェクトプラグインが格納される場所も指定します。場所は、このプロジェクト内のオンラインリポジトリと Java プラグインの組み合わせです。 このファイルの内容に影響を変更するには、カスタムの Gradle Settings Template を設定してください。 |
gradle.properties ファイルには、Unity 固有の以下のプロパティが含まれます。
| プロパティ | 説明 |
|---|---|
| unityStreamingAssets | Streaming Assets ディレクトリ内のアセットの名前を示します。Unity は、これらのアセットを最終的なアプリケーションに追加し、Gradle が圧縮しないよう指示します。 |
| unityTemplateVersion | Unity が使用する Gradle テンプレートファイルのバージョン。プロジェクトの Gradle テンプレートバージョンが指定されたバージョンと異なる場合、Unity はエラーをスローして Gradle ファイルの更新と空のフォルダーへのプロジェクトのビルドを通知します。 |
| unity.projectPath | Unity プロジェクトのパスです。 |
| unity.debugSymbolLevel | Unity が使用するデバッグシンボルレベル。 |
| unity.buildToolsVersion | Unity が使用するビルドツールのバージョン。 |
| unity.minSdkVersion | Unity が使用する最小 API レベル。 |
| unity.targetSdkVersion | Unity が使用するターゲット API レベル。 |
| unity.compileSdkVersion | ビルドプロセス中にアプリケーションのコンパイルに使用される Android SDK のコンパイル SDK バージョン。 |
| unity.applicationId | Unity が使用するアプリケーション ID。例えば、com.MyCompany.MyApp など。 |
| unity.abiFilters | Unity が使用するアプリケーションに含まれる、カンマで区切られた Application Binary Interface (ABI) 設定。例えば、armeabi-v7a、arm64-v8a など。 |
| unity.versionCode | アプリケーションの内部バージョン番号。アプリケーションのバージョンがどれだけ新しいかを示すために使用されます。数値が大きいほど、より新しいバージョンを表します。 |
| unity.versionName | 文字列で表されるアプリケーションのバージョン番号。このバージョン番号はユーザーに表示されます。 |
| unity.namespace | Unity が使用するアプリケーション名前空間。例えば、com.MyCompany.MyApp など。 |
| unity.androidSdkPath | External Tools の Android セクションで設定された Android Software Development Kit (SDK) のインストールフォルダーパス。メニュー: Edit > Preferences > External Tools (macOS:Unity > Settings > External Tools)。 |
| unity.androidNdkPath | External Tools の Android セクションで設定された Android Native Development Kit (NDK) のインストールフォルダーパス。メニュー: Edit > Preferences > External Tools (macOS:Unity > Settings > External Tools)。 |
| unity.androidNdkVersion | External Tools の Android セクションで設定された Android Native Development Kit (NDK) のバージョン。メニュー: Edit > Preferences > External Tools (macOS:Unity > Settings > External Tools)。 |
| unity.jdkPath | External Tools の Android セクションで設定された Java Development Kit (JDK) のインストールフォルダーパス。メニュー: Edit > Preferences > External Tools (macOS:Unity > Settings > External Tools)。 |
| unity.javaCompatabilityVersion | Unity で使用する Java 互換性バージョン。 |