Version: Unity 6.0 (6000.0)
언어 : 한국어
Android 요구 사항 및 호환성
Unity and Gradle version compatibility

Android용 Gradle

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.32021.3

커스텀 Gradle 또는 Android Gradle 플러그인 버전을 사용하려면 Gradle 및 Android Gradle 플러그인 간의 버전 호환성을 알고 있어야 합니다. 이에 대한 자세한 내용은 Gradle 업데이트를 참조하십시오.

Gradle 프로젝트 파일

Gradle 프로젝트 파일은 포함할 모듈과 빌드 방법 등 애플리케이션의 다양한 측면을 구성합니다.

다음 표에는 Unity 프로젝트에 존재하는 Gradle 프로젝트 파일 목록과 각 파일의 용도가 설명되어 있습니다.

Gradle 프로젝트 파일 목적
Main Manifest 이 파일에는 Android 애플리케이션에 대한 중요한 메타데이터가 포함되어 있습니다. 메인/Unity 라이브러리 매니페스트의 책임에 대한 자세한 내용은 Unity 라이브러리 매니페스트를 참조하십시오.
Unity Launcher Manifest 이 파일에는 Android 애플리케이션 런처에 대한 중요한 메타데이터가 포함되어 있습니다. Unity 런처 매니페스트의 책임에 대한 자세한 내용은 Unity 런처 매니페스트를 참조하십시오.
Main Gradle 이 파일에는 Android 애플리케이션을 라이브러리로 빌드하는 방법에 대한 정보가 포함되어 있습니다.
Launcher Gradle 이 파일에는 Android 애플리케이션을 빌드하는 방법에 대한 지침이 포함되어 있습니다.
Base Gradle 이 파일에는 다른 모든 템플릿과 Gradle 프로젝트 간에 공유되는 구성이 포함되어 있습니다.
Gradle Properties 이 파일에는 Gradle 빌드 환경에 대한 구성 설정이 포함되어 있습니다. 여기에는 다음이 포함됩니다. - JVM(Java 가상 머신) 메모리 설정 - Gradle이 여러 JVM을 사용하여 구축할 수 있도록 하는 프로퍼티 - 축소화 작업을 수행할 툴을 선택하는 프로퍼티 - 앱 번들을 구축할 때 네이티브 라이브러리를 압축하지 않도록 하는 프로퍼티
Gradle Settings 이 파일에는 애플리케이션에 필요한 외부 종속성을 해결하기 위한 아티팩트 저장소 선언이 포함되어 있습니다.
Proguard 이 파일에는 축소화 프로세스의 구성 설정이 포함되어 있습니다. 축소화로 인해 유지해야 하는 일부 Java 코드가 제거되는 경우 이 파일에 해당 코드를 유지하도록 규칙을 추가해야 합니다.

Gradle 프로젝트 구조

Unity 프로젝트를 Gradle project로 익스포트하면, 다음의 두 가지 모듈을 포함하는 Gradle 프로젝트를 만듭니다.

  • UnityLibrary 모듈: Unity 런타임 및 프로젝트 데이터가 포함되어 있습니다. 이 모듈은 다른 Gradle 프로젝트에 통합할 수 있는 라이브러리입니다. 이를 사용하여 Unity를 기존 Android 애플리케이션에 포함할 수 있습니다.
  • 런처 모듈: 애플리케이션 이름과 모든 해당 아이콘이 포함되어 있습니다. Unity를 실행하는 간단한 Android 애플리케이션 모듈입니다. 자체 애플리케이션으로 대체할 수 있습니다.
File 설명
launcher 런처 모듈 및 이와 관련된 모든 항목이 들어 있는 디렉토리입니다.
  src 런처 모듈의 소스 코드 및 리소스를 포함하는 표준 Android Gradle 프로젝트 디렉토리입니다. Unity는 소스 코드와 리소스를 main 하위 디렉토리에 저장합니다.
    main 런처 모듈의 소스 코드 및 리소스를 포함하는 표준 Android Gradle 프로젝트 디렉토리입니다. Unity는 메인 소스 세트만 지원합니다. 소스 세트에 대한 자세한 내용은 소스 세트 생성을 참조하십시오.
      res 최종 애플리케이션에 포함할 리소스가 있는 표준 Android Gradle 프로젝트 디렉토리입니다. 리소스는 애플리케이션 아이콘, 런타임 시 애플리케이션이 액세스하는 텍스트, 애플리케이션 스타일 설명입니다.

이 디렉토리에 있는 리소스를 지정하려면 Android 플레이어 설정에서 애플리케이션 아이콘과 프로젝트 이름을 설정합니다.
      AndroidManifest.xml Unity가 최종 Android 앱 매니페스트에 병합하는 표준 Android Gradle 프로젝트 파일입니다. 여기에는 런처 모듈 전용 설정이 포함되어 있습니다.

중요: 여러 매니페스트 파일이 동일한 설정에 대해 다른 값을 지정하는 경우 매니페스트 병합 프로세스가 실패하며 수동으로 수정해야 합니다. 매니페스트 병합에 대한 규칙을 지정하여 병합 충돌을 해결하는 방법을 자동으로 결정할 수 있습니다. 이렇게 하는 방법에 대한 자세한 내용은 매니페스트 파일 관리를 참조하십시오.

이 파일의 내용을 조정하는 방법에 대한 자세한 내용은 Gradle 프로젝트 파일 수정을 참조하십시오.
  build.gradle 런처 모듈을 구축하는 방법을 설명하고 빌드에 포함할 종속성 목록을 포함하는 표준 Gradle 프로젝트 build.gradle 파일입니다. Unity에서 런처 모듈은 unityLibrary 모듈에 종속되므로 런처 모듈을 구축할 때 unityLibrary가 구축되며 최종 결과물에 포함됩니다.

이 파일의 내용을 조정하려면 커스텀 Launcher Gradle Template을 제공합니다.
  setupSymbols.gradle 디버그 심볼 파일을 앱 번들에 포함하고 레거시 .so 확장자를 사용하여 심볼 파일을 생성하는 빌드 스크립트가 포함된 Unity 전용 파일입니다.
shared 프로젝트의 여러 모듈에 적용되는 공통 설정 정보가 포함된 디렉토리입니다.
  keepUnitySymbols.gradle 스택 추적을 확인하기 위해 런타임 바이너리에 디버그 메타데이터를 저장하는 스크립트가 포함된 Unity 전용 파일입니다.
unityLibrary unityLibrary 모듈 및 이와 관련된 모든 항목이 포함된 디렉토리입니다.
  libs unityLibrary 모듈에 대한 Android Archive(.aar) 및 Java Archive(.jar) 플러그인을 저장하는 일반적인 Android Gradle 프로젝트 디렉토리입니다.

익스포트한 Unity 프로젝트의 경우 여기에는 Unity 프로젝트의 unity-classes.jar 및 모든 .jar 및 .aar 플러그인이 포함됩니다.

참고: 이 디렉토리에는 Android 라이브러리 프로젝트 플러그인이 없습니다. 대신 Unity는 이를 별도의 모듈로 Gradle 프로젝트에 복사합니다.
    unity-classes.jar Unity 엔진이 사용하는 java 코드를 포함하는 Unity 전용 java 플러그인입니다.
  src unityLibrary 모듈의 소스 코드와 리소스를 포함하는 표준 Android Gradle 프로젝트 디렉토리입니다. Unity는 소스 코드와 리소스를 main 하위 디렉토리에 저장합니다.
    main unityLibrary 모듈의 소스 코드와 리소스를 포함하는 표준 Android Gradle 프로젝트 디렉토리입니다. Unity는 메인 소스 세트만 지원합니다. 소스 세트에 대한 자세한 내용은 소스 세트 생성을 참조하십시오.
      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, libmainlibunity Unity 엔진 라이브러리를 배치합니다. 또한 Unity는 이 디렉토리에 모든 네이티브(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 Debug Symbols 빌드 설정을 통해 애플리케이션용 심볼 파일을 생성하려는 경우 Unity가 추가하는 디렉토리입니다. 이 디렉토리에는 디버그 메타데이터가 포함된 파일과 Unity 라이브러리의 심볼 테이블 섹션이 포함되어 있습니다. Android Studio에서 디렉토리 경로를 설정하여 디버깅 중에 함수 이름을 확인할 수 있습니다.
  build.gradle unityLibrary 모듈을 구축하는 방법을 설명하고 빌드에 포함할 종속성 목록을 포함하는 표준 Gradle 프로젝트 build.gradle 파일입니다. Unity에서 unityLibrary 모듈은 Unity 프로젝트의 모든 플러그인에 종속됩니다.

이 파일의 내용을 조정하려면 커스텀 Main Gradle Template을 제공합니다.
  proguard-unity.txt Unity Java 코드에 대한 ProGuard 설정이 포함된 Unity 전용 파일입니다(unity-classes.jar 플러그인의 코드). 설정은 Minification이 플레이어 설정에서 활성화되었거나, Gradle 빌드 파일을 수동으로 수정하여 활성화된 경우에 적용됩니다.
build.gradle Gradle 프로젝트의 모든 모듈에 영향을 주는 기본 Gradle 파일입니다. 이는 Gradle 프로젝트에서 사용할 플러그인 버전을 지정합니다. 이러한 플러그인 중 하나는 Android Gradle 플러그인입니다.

이 파일의 내용을 조정하려면 커스텀 Base Gradle Template을 제공합니다.
proguard-user.txt 이 파일은 프로젝트의 Java 코드와 타사 Java 플러그인을 위한 ProGuard 설정이 포함된 Unity 프로젝트 전용 파일입니다. ProGuard-unity.txt Gradle이 축소를 활성화하면 사용하는 것과 마찬가지입니다.

이 파일을 만들려면 Android 플레이어 설정에서 Custom Proguard File을 활성화합니다.
gradle.properties 애플리케이션을 구축하는 방법을 설정하는 표준 Gradle 프로젝트 파일입니다. 이 파일의 Unity 전용 프로퍼티에 대한 자세한 내용은 gradle.properties 파일의 프로퍼티를 참조하십시오. 이 파일에 포함될 수 있는 Gradle 프로퍼티에 대한 자세한 내용은 Gradle 프로퍼티 파일을 참조하십시오.

이 파일의 내용을 조정하려면 커스텀 Gradle Properties Template을 제공합니다.
local.properties 빌드 시스템의 환경을 설정하는 표준 Android Gradle 프로젝트 파일입니다. Unity는 기본적으로 익스포트한 Gradle 프로젝트가 Unity 에디터에서 사용한 것과 동일한 SDK를 사용하도록 SDK 경로를 여기에 지정합니다. NDK 경로는 이전 Gradle 버전에서도 여기에 지정되었지만, 이제는 Unity가 런처unityLibrary 모듈의 build.gradle 파일에 지정합니다.

이 파일에 포함될 수 있는 프로퍼티 정보는 Gradle 프로퍼티 파일을 참조하십시오.
settings.gradle 이 Android Gradle 프로젝트를 구성하는 모든 모듈을 지정하는 표준 Android Gradle 프로젝트 파일입니다. Unity가 익스포트하는 프로젝트에서는 일반적으로 런처unityLibrary 모듈만 지정합니다. 그러나 Unity 프로젝트가 Play Asset Delivery를 사용하는 경우 각 에셋 팩은 별도의 모듈이므로 이 파일에도 해당 모듈이 나열됩니다. 또한 이 파일은 Gradle 프로젝트 플러그인을 포함하는 위치를 지정합니다. 위치는 이 프로젝트 내에서 온라인 저장소와 Java 플러그인을 조합한 것입니다.

이 파일의 내용을 조정하려면 커스텀 Gradle Settings Template을 제공합니다.

gradle.properties 파일의 프로퍼티

gradle.properties 파일에는 다음과 같은 Unity 전용 프로퍼티가 포함되어 있습니다.

프로퍼티 설명
unityStreamingAssets Streaming Assets 디렉토리의 에셋 이름을 나타냅니다. Unity는 이러한 에셋이 최종 애플리케이션에 있어야 하며 Gradle이 압축하지 않도록 지정합니다.
unityTemplateVersion Unity가 사용하는 Gradle 템플릿 파일의 버전입니다. 프로젝트의 Gradle 템플릿 버전이 지정된 템플릿과 다른 경우 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에서 사용하는 애플리케이션에 포함된 ABI(애플리케이션 바이너리 인터페이스) 설정은 쉼표로 구분됩니다. 예: armeabi-v7a, arm64-v8a.
unity.versionCode 애플리케이션의 내부 버전 번호입니다. 애플리케이션의 최신 버전을 나타내는 데 사용되며, 숫자가 클수록 최신 버전을 나타냅니다.
unity.versionName 문자열로 표시된 애플리케이션 버전 번호입니다. 이 버전 번호는 사용자에게 표시됩니다.
unity.namespace Unity에서 사용하는 애플리케이션 네임스페이스입니다. 예: com.MyCompany.MyApp.
unity.androidSdkPath External ToolsAndroid 섹션에 설정된 Android SDK 설치 폴더 경로입니다(메뉴: Edit > Preferences > External Tools, macOS: Unity > Settings > External Tools).
unity.androidNdkPath External ToolsAndroid 섹션에 설정된 Android NDK(Native Development Kit) 설치 폴더 경로입니다(메뉴: Edit > Preferences > External Tools, macOS: Unity > Settings > External Tools).
unity.androidNdkVersion External ToolsAndroid 섹션에 설정된 Android NDK(Native Development Kit) 버전입니다(메뉴: Edit > Preferences > External Tools, macOS: Unity > Settings > External Tools).
unity.jdkPath External ToolsAndroid 섹션에 설정된 JDK(Java Development Kit) 설치 폴더 경로입니다(메뉴: Edit > Preferences > External Tools, macOS: Unity > Settings > External Tools).
unity.javaCompatabilityVersion Unity에서 사용하는 Java 호환성 버전입니다.
Android 요구 사항 및 호환성
Unity and Gradle version compatibility