Gradle 템플릿은 Gradle을 사용하여 Android 애플리케이션을 빌드하는 방법을 설정합니다. 각 Gradle 템플릿은 단일 Gradle 프로젝트를 나타냅니다. Gradle 프로젝트는 다른 Gradle 프로젝트를 포함하고 이에 의존할 수 있습니다.
Gradle 템플릿은 다음의 파일로 구성됩니다.
File | 위치 | 내용물 |
---|---|---|
baseProjectTemplate.gradle |
익스포트한 프로젝트의 root/build.gradle 폴더 |
최종 Gradle 프로젝트의 모든 모듈에 영향을 미치는 설정 정보가 있습니다. 사용할 Android Gradle 플러그인 버전과 Java 플러그인의 위치를 지정합니다. 이 위치는 프로젝트 내부의 온라인 저장소와 Java 플러그인을 조합하여 지정합니다. |
launcherTemplate.gradle |
익스포트한 프로젝트의 root/launcher/build.gradle 폴더 |
Android 애플리케이션을 빌드하는 방법에 대한 명령어가 있습니다. 여기에는 번들링, 서명, APK를 나누는지 여부가 포함됩니다. unityLibrary 프로젝트에 따라 다르며 .apk 파일이나 앱 번들을 출력합니다. |
mainTemplate.gradle |
익스포트한 프로젝트의 root/unityLibrary/build.gradle 폴더 |
Instructions on how to build Unity as a Library. This outputs an .aar file. You can override the Unity template with a custom template in the Unity Editor. Refer to the Providing a custom Gradle build template section on this page for more details. |
libTemplate.gradle |
다양함 |
Android 라이브러리 프로젝트 플러그인에 build.gradle 파일이 포함되어 있지 않은 경우 Unity는 파일을 생성하기 위해 libTemplate.gradle 파일을 템플릿으로 사용합니다. Unity가 build.gradle 파일을 생성한 후 또는 플러그인 디렉토리에 이미 파일이 존재하는 경우 Unity는 플러그인을 Gradle 프로젝트에 복사합니다. |
settingsTemplate.gradle |
In the exported project, root/settings.gradle file |
Specifies the names of modules that the Gradle build system should include when it builds the project. You can override the Unity template with a custom template in the Unity Editor. Refer to the Providing a custom Gradle build template section on this page for more details. |
gradleTemplate.properties |
In the exported project, root/gradle.properties file |
Configures the Gradle build system and specifies properties such as the size of the Java virtual machine (JVM) heap |
To have more control over the Gradle project files that Unity produces, you can override Unity’s default Gradle template files. For information on how to do this, refer to Modify Gradle project files with Gradle template files.
Unity에서 조합된 Gradle 프로젝트를 수정하려면 IPostGenerateGradleAndroidProject에서 상속된 클래스를 생성하고 OnPostGenerateGradleAndroidProject 함수를 오버라이드합니다. 이 함수는 unityLibrary 모듈에 대한 경로를 파라미터로 수신하며 이를 사용하여 C# 스크립팅을 통해 애플리케이션 매니페스트와 리소스에 도달할 수 있습니다.
경고: 이제 Unity는 증분 빌드 파이프라인을 사용하며 이는 Unity가 연속된 빌드에 대해 동일한 Gradle 프로젝트를 다시 사용한다는 의미입니다. 즉 Unity가 모든 빌드에 대해 더 이상 새로운 Gradle 프로젝트를 생성하지 않기 때문에 API를 사용하여 수행하는 모든 수정 사항이 누적됩니다. 예를 들어 이 API를 사용하여 추가 파일을 Gradle 프로젝트에 추가한다면 예상대로 첫 번째 빌드는 작동하지만 두 번째 빌드를 하는 동안에는 해당 파일이 이미 존재합니다. 다른 예로는 이 API를 사용하여 특정 파일에 권한을 추가하는 경우입니다. 각 연속 빌드는 권한에 대해 다른 엔트리를 추가합니다. 수정할 사항이 빌드에 이미 존재하지 않는지 확인하는 것이 중요합니다.