Gradle은 여러 빌드 프로세스를 자동화하고 일반적인 빌드 오류를 방지하는 빌드 시스템입니다. Unity는 모든 Android 빌드에 Gradle을 사용합니다. Unity에서 출력 패키지(.apk, .aab)를 빌드하거나, Unity에서 Gradle 프로젝트를 익스포트한 후 Android Studio와 같은 외부 툴로 빌드할 수 있습니다.
자세한 내용은 다음을 참조하십시오.
다음 표는 Gradle 버전과 Unity 버전 간의 호환성을 나타냅니다.
Unity 버전 | Gradle 버전 |
---|---|
2022.2 | 7.2 |
2022.1 2021.3 2021.2 2021.1(2021.1.16f1부터) 2020.3(2020.3.15f1부터) |
6.1.1 |
2021.1(2021.1.15f1까지) 2020.1, 2020.2, 2020.3(2020.3.14f1까지) |
5.6.4 |
2019.4 | 5.1.1 |
커스텀 Gradle 또는 Android Gradle 플러그인 버전을 사용하려면 Gradle과 Android Gradle 플러그인 간의 버전 호환성을 아는 것이 중요합니다. 이에 대한 자세한 내용은 Gradle 업데이트를 참조하십시오.
Gradle 프로젝트 파일은 포함할 모듈과 빌드 방법 등 애플리케이션의 다양한 측면을 구성합니다.
다음 표에는 Unity 프로젝트에 존재하는 Gradle 프로젝트 파일 목록과 각 파일의 용도가 설명되어 있습니다.
Gradle 프로젝트 파일 | 목적 |
---|---|
Main Manifest | This file contains important metadata about your Android application. For more information about the responsibilities of the Main/Unity Library Manifest see Unity Library Manifest. |
Unity Launcher Manifest | This file contains important metadata about your Android application’s launcher. For more information about the responsibilities of the Unity Launcher Manifest see Unity Launcher Manifest. |
Main Gradle | 이 파일에는 Android 애플리케이션을 라이브러리로 빌드하는 방법에 대한 정보가 포함되어 있습니다. |
Launcher Gradle | 이 파일에는 Android 애플리케이션을 빌드하는 방법에 대한 지침이 포함되어 있습니다. |
Base Gradle | This file contains configuration that is shared between all other templates and Gradle projects. |
Gradle Properties | 이 파일에는 Gradle 빌드 환경에 대한 구성 설정이 포함되어 있습니다.여기에는 다음이 포함됩니다- JVM(Java Virtual Machine) 메모리 구성 - Gradle이 여러 JVM을 사용하여 빌드할 수 있도록 하는 프로퍼티 - 축소화 작업을 수행할 툴을 선택하는 프로퍼티 - 앱 번들을 빌드할 때 네이티브 라이브러리를 압축하지 않도록 하는 프로퍼티 |
Proguard | 이 파일에는 축소화 프로세스에 대한 구성 설정이 포함되어 있습니다.축소화로 인해 유지해야 하는 일부 Java 코드가 제거되는 경우 이 파일에 해당 코드를 유지하도록 규칙을 추가해야 합니다. |
Unity 프로젝트를 Gradle project로 익스포트하면, 다음의 두 가지 모듈을 포함하는 Gradle 프로젝트를 만듭니다.
File | 설명 |
---|---|
build.gradle | The base Gradle file that affects all modules in the Gradle project. It specifies which plugin versions to use in this Gradle project. One of these plugins is Android Gradle Plugin. To influence the contents of this file, provide a custom Base Gradle Template. |
gradle.properties | 애플리케이션을 빌드하는 방법을 설정하는 표준 Gradle 프로젝트 파일입니다. 또한 Unity는 스트리밍 에셋 디렉토리 내에 에셋 이름을 추가하고 이러한 에셋이 최종 애플리케이션에 있어야 하며 Gradle이 압축하지 못하도록 지정합니다. 이 파일의 콘텐츠에 영향을 주기 위해 커스텀 Gradle 프로퍼티 템플릿을 제공합니다. 이 파일이 포함할 수 있는 프로퍼티에 대한 내용은 Gradle 프로퍼티 파일을 참조하십시오. |
런처 | 런처 모듈 및 이와 관련된 모든 항목이 들어 있는 디렉토리입니다. |
build.gradle | 런처 모듈을 빌드하는 방법을 설명하고 빌드에 포함할 종속성 목록을 포함하는 표준 Gradle 프로젝트 build.gradle 파일입니다. Unity에서 런처 모듈은 unityLibrary 모듈에 기반합니다. 즉, 런처 모듈을 빌드할 때 unityLibrary가 빌드되어 최종 결과에 포함됩니다.이 파일의 콘텐츠에 영향을 주기 위해 커스텀 런처 Gradle 템플릿을 제공합니다. |
src | 런처 모듈의 소스 코드와 리소스를 포함하는 표준 Android Gradle 프로젝트 디렉토리입니다. Unity는 소스 코드와 리소스를 main 의 하위 디렉토리에 배치합니다. |
main | 런처 모듈의 소스 코드와 리소스를 포함하는 표준 Android Gradle 프로젝트 디렉토리입니다. Unity는 메인 소스 세트만 지원합니다. 소스 세트에 대한 자세한 내용은 소스 세트 생성을 참조하십시오. |
AndroidManifest.xml | Unity가 최종 Android 앱 매니페스트에 병합하는 표준 Android Gradle 프로젝트 파일입니다. 런처 모듈과 관련된 설정을 포함하고 있습니다. 중요: 여러 매니페스트 파일이 동일한 설정에 대해 서로 다른 값을 지정하는 경우 매니페스트 병합 프로세스가 실패하므로 수동으로 수정해야 합니다. 매니페스트 병합 규칙을 지정하여 병합 충돌을 해결하는 방법을 자동으로 결정할 수 있습니다. 자세한 방법은 매니페스트 파일 관리를 참조하십시오. 이 파일의 콘텐츠에 영향을 주는 방법에 대한 자세한 내용은 Android 앱 매니페스트 오버라이드를 참조하십시오. |
jniLibs | 런처 모듈이 사용하는 네이티브 코드 라이브러리를 포함하는 표준 Android Gradle 프로젝트 디렉토리입니다. |
res | 최종 애플리케이션에 포함할 리소스가 들어있는 표준 Android Gradle 프로젝트 디렉토리입니다. 리소스는 애플리케이션 아이콘, 애플리케이션이 런타임에 액세스하는 텍스트, 애플리케이션 스타일 설명입니다. 이 디렉토리의 리소스를 지정하려면 Android Player Settings에서 애플리케이션 아이콘과 프로젝트 이름을 설정합니다. |
local.properties | A standard Android Gradle project file that configures the environment of the build system. Unity specifies the path to SDK here so that by default, the exported Gradle project uses the same SDK that the Unity Editor used. NDK path used to be specified here with previous Gradle versions as well, but now Unity specifies it in the build.gradle files of launcher and unityLibrary modules. For information on the properties this file can contain, see Gradle property files. |
settings.gradle | A standard Android Gradle project file that specifies all of the modules that make up this Android Gradle project. In projects that Unity exports, this usually only specifies the launcher and unityLibrary modules. However, if the Unity project uses Play Asset Delivery, each asset pack is a separate module, so this file lists them too. The file also specifes locations which contain Gradle project plugins. The locations are a combination of online repositories and java plugins inside of this project. To influence the contents of this file, copy the settingsTemplate.gradle file in the PlaybackEngines/AndroidPlayer/Tools/GradleTemplates/ directory into Assets/Plugins/Android in your Unity project. You can then append your custom modifications to this file. |
unityLibrary | unityLibrary 모듈 및 이와 관련된 모든 항목이 들어 있는 디렉토리 입니다. |
build.gradle | unityLibrary 모듈을 빌드하는 방법을 설명하고 빌드에 포함할 종속성 목록을 포함하는 표준 Gradle 프로젝트 build.gradle 파일입니다. Unity에서 unityLibrary 모듈은 Unity 프로젝트의 모든 플러그인에 기반합니다. 이 파일의 콘텐츠에 영향을 주기 위해 커스텀 Main Gradle 템플릿을 제공합니다 |
libs | unityLibrary 모듈용 Android 아카이브(.aar)와 Java 아카이브(.jar) 플러그인을 저장하는 일반적인 Android Gradle 프로젝트 디렉토리입니다. 익스포트한 Unity 프로젝트의 경우, Unity 프로젝트의 모든 .jar과 .aar 플러그인뿐만 아니라 unity-classes.jar 을 포함합니다.참고: 이 디렉토리는 Android 라이브러리 프로젝트 플러그인을 포함하지 않습니다. 대신 Unity는 이를 별도의 모듈로 Gradle 프로젝트에 복사합니다. |
unity-classes.jar | Unity 엔진이 사용하는 java 코드를 포함하는 Unity 전용 java 플러그인입니다. |
proguard-unity.txt | Unity 자바 코드(unity-classes.jar 플러그인의 코드)에 대한 ProGuard 설정을 포함하는 Unity 전용 파일입니다. 플레이어 설정에서 minification을 활성화한 경우(또는 gradle 빌드 파일을 수동으로 수정하여 활성화한 경우) 설정이 적용됩니다. |
src | unityLibrary 모듈의 소스 코드와 리소스를 포함하는 표준 Android Gradle 프로젝트 디렉토리입니다. Unity는 소스 코드와 리소스를 main 의 하위 디렉토리에 배치합니다. |
main | unityLibrary 모듈의 소스 코드와 리소스를 포함하는 표준 Android Gradle 프로젝트 디렉토리입니다. Unity는 메인 소스 세트만 지원합니다. 소스 세트에 대한 자세한 내용은 소스 세트 생성을 참조하십시오. |
AndroidManifest.xml | Unity가 최종 Android 앱 매니페스트에 병합하는 표준 Android Gradle 프로젝트 파일입니다. unityLibrary 모듈과 관련된 설정을 포함하고 있습니다. 이 파일의 콘텐츠에 영향을 주기 위해 커스텀 메인 매니페스트를 제공합니다. |
assets | 프로젝트 에셋을 포함하는 표준 Android Gradle 디렉토리입니다. Unity는 Unity 프로젝트의 리소스를 bin 의 하위 디렉토리에 배치합니다. |
bin | Unity 프로젝트의 모든 리소스를 추가하는 표준 Android Gradle 프로젝트 디렉토리입니다. |
java | unityLibrary 모듈의 컴파일되지 않은 Java 소스 파일을 포함하는 표준 Android Gradle 프로젝트 디렉토리입니다. Unity는 UnityPlayerActivity 소스 파일을 저장하는 데만 이 디렉토리를 사용합니다. UnityPlayerActivity를 확장하는 방법에 대한 자세한 내용은 UnityPlayerActivity Java 코드 확장을 참조하십시오. |
jniLibs | unityLibrary 모듈이 사용하는 네이티브 코드 라이브러리를 포함하는 표준 Android Gradle 프로젝트 디렉토리입니다. Unity에서 libil2cpp , libmain , libunity Unity 엔진 라이브러리는 이 디렉토리에 위치합니다. 또한 모든 네이티브(C++) 플러그인도 이 디렉토리에 위치합니다. |
res | 최종 애플리케이션에 포함할 리소스가 들어있는 표준 Android Gradle 프로젝트 디렉토리입니다. 익스포트한 Unity 프로젝트의 경우 unityLibrary 모듈의 res 디렉토리에는 unityLibrary 모듈이 사용하는 스타일 설명만 포함됩니다. |
proguard-user.txt | 이 파일은 프로젝트의 Java 코드와 타사 Java 플러그인에 대한 ProGuard 설정을 포함하는 Unity 프로젝트 전용 파일입니다. ProGuard-unity.txt 와 마찬가지로 Gradle은 minification를 활성화하면 이 파일을 사용합니다. 이 파일을 생성하려면 Android 플레이어 설정에서 Custom Proguard File을 활성화합니다. |