Unity Editor Android 호환성

Unity 편집기는 특정 버전의 Gradle로 버전 잠겨 있으며, 이는 Google 모바일 광고와 같은 최신 Android 패키지에 필요한 종속 항목과 충돌할 수 있습니다. 다음 가이드에서는 이전 버전의 Unity 편집기에서 Android 빌드를 생성하는 방법을 설명합니다.

다음 표에는 Unity 편집기에 따라 사용할 수 있는 최대 호환 Google 모바일 광고 플러그인 버전이 권장됩니다.

Unity 편집기 권장 Google 모바일 광고 Unity 플러그인 버전
2023.1 이상 최신
2021.3.41f1 - 2022.3 9.1.0
2021.3.37f1 이하 8.5.3

기본 요건

2022.3 이하 빌드 설정 업데이트

Unity 2022.3 이하에서는 Android 스튜디오로 내보내기 전에 빌드 설정을 변경해야 합니다.

baseProjectTemplate.gradle 생성

  1. 맞춤 Gradle 템플릿을 사용 설정합니다. Project Settings > Player > Android > Publishing Settings > Build로 이동하여 Custom Base Gradle Template을 선택합니다. 이렇게 하면 Plugins/Android/baseProjectTemplate.gradle 파일이 생성됩니다.

  2. Gradle 도구 버전 8.1.1 이상을 사용하도록 Plugins/Android/baseProjectTemplate.gradle 파일을 수정합니다.

    plugins {
        id 'com.android.application' version '8.1.1' apply false
        id 'com.android.library' version '8.1.1' apply false
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    

Unity 2021.3.37f1 이하의 추가 변경사항

Unity 2021.3.37f1 이하에서는 호환성을 Gradle 8.1.1로 업그레이드하기 위해 추가 변경이 필요합니다. 다음 단계를 완료합니다.

launcherTemplate.gradle 생성

  1. Project Settings(프로젝트 설정) > Player(플레이어) > Android > Publishing Settings(게시 설정) > Build(빌드)로 이동하여 Launcher Gradle Template(런처 Gradle 템플릿)을 선택합니다. 이렇게 하면 Plugins/Android/launcherTemplate.gradle 파일이 생성됩니다.

  2. 네임스페이스 속성을 포함하도록 Plugins/Android/launcherTemplate.gradle를 수정합니다. 네임스페이스 속성 값은 런처 모듈의 AndroidManifest.xml 파일에 있는 패키지 속성과 일치해야 합니다.

    android {
        // TODO: Replace with your app's package name.
        namespace 'com.google.android.gms.example'
    }
    

mainTemplate.gradle 생성

  1. Project Settings(프로젝트 설정) > Player(플레이어) > Android > Publishing Settings(게시 설정) > Build(빌드)로 이동하여 Main Gradle Template(기본 Gradle 템플릿)을 선택합니다. 이렇게 하면 Plugins/Android/mainTemplate.gradle 파일이 생성됩니다.

.

  1. 값이 com.unity3d.player인 네임스페이스 속성을 포함하도록 Plugins/Android/mainTemplate.gradle를 수정합니다.

    android {
        namespace 'com.unity3d.player'
    }
    

Android 스튜디오로 내보내기

  1. Android 빌드 설정을 수정하여 Unity 프로젝트를 내보냅니다.

  2. Android 스튜디오로 내보내려면 Android 빌드 설정을 수정합니다. File (macOS의 경우 Unity Editor) > Build Settings를 선택하고 Export Project를 선택합니다.

  3. Build Settings(빌드 설정) 대화상자 하단에 있는 Export(내보내기) 버튼을 누릅니다. Unity에서 선택한 위치에 Android 프로젝트를 생성합니다.

  4. Android 스튜디오에서 내보낸 프로젝트를 엽니다.

JDK 17을 사용하도록 Gradle JDK 구성 업데이트

  1. Android 스튜디오를 사용하여 File(macOS의 경우 Android 스튜디오) > Settings > Build, Execution, Deployment > Build Tools > Gradle에서 Gradle 설정을 엽니다.
  2. Gradle JDK 드롭다운을 찾습니다. JDK 17을 사용하도록 Gradle JDK를 수정합니다.

    JDK 17이 설치되어 있지 않으면 Gradle JDK 드롭다운 메뉴에서 JDK 다운로드 옵션을 선택하고 호환되는 버전을 다운로드합니다. Android 스튜디오에서 배포하는 것과 일치하도록 arch64 지원이 있는 JetBrains 런타임 공급업체를 사용하는 것이 좋습니다.

Gradle 래퍼 파일 업데이트

Gradle 8.0.1 이상을 사용하도록 gradle/wrapper/gradle-wrapper.properties 내의 distributionUrl 매개변수를 수정합니다.

   distributionBase=GRADLE_USER_HOME
   distributionPath=wrapper/dists
   zipStoreBase=GRADLE_USER_HOME
   zipStorePath=wrapper/dists
   distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip

Unity 2021.3.37f1 이하의 추가 Android 스튜디오 변경사항

Unity 2021.3.37f1 이하에서는 호환성을 Gradle 8.1.1로 업그레이드하기 위해 추가 변경이 필요합니다. 다음 단계를 완료합니다.

  1. gradle.properties를 수정하고 android.enableR8=false 속성을 삭제합니다.

  2. unityLibrary/GoogleMobileAdsPlugin.androidlib/build.gradle를 수정하고 값이 "com.google.unity.ads"인 네임스페이스 속성을 추가합니다.

    apply plugin: 'android-library'
    
    dependencies {
        implementation fileTree(dir: 'bin', include: ['*.jar'])
        implementation fileTree(dir: 'libs', include: ['*.jar'])
    }
    
    android {
        namespace "com.google.unity.ads"
        sourceSets {
            main {
                manifest.srcFile 'AndroidManifest.xml'
                //java.srcDirs = ['src']
                res.srcDirs = ['res']
                assets.srcDirs = ['assets']
                jniLibs.srcDirs = ['libs']
            }
        }
    
        compileSdkVersion 35
        buildToolsVersion '30.0.3'
        defaultConfig {
            targetSdkVersion 31
        }
    
        lintOptions {
            abortOnError false
        }
    }
    

Android 프로젝트 실행

이 단계를 완료하면 Unity 애플리케이션이 준비됩니다. Android 스튜디오에서 Gradle 동기화를 실행하고 프로젝트를 실행합니다.