Unity와 Firebase의 문제 해결 및 FAQ

이 페이지에서는 Firebase 사용 시 발생할 수 있는 Unity 관련 문제의 팁과 문제 해결 방법을 제공합니다.

아래에서 찾을 수 없는 다른 문제나 어려운 점이 있으신가요? Firebase 전체 FAQ 또는 제품별 FAQ를 살펴보려면 기본 Firebase FAQ를 확인하세요.

Android 앱 빌드 도중 단일 dex 관련 문제

Android 앱을 빌드하는 동안 단일 dex 파일 보유와 관련된 빌드 실패가 발생할 수 있습니다. 프로젝트가 Gradle 빌드 시스템을 사용하도록 구성된 경우 오류 메시지는 다음과 유사합니다.

Cannot fit requested classes in a single dex file.

Dalvik 실행 파일(.dex)은 Android 애플리케이션(.apk)의 클래스 정의 및 관련 부속 데이터를 저장하는 데 사용됩니다. 단일 dex 파일은 65,536개의 메서드를 참조하도록 제한됩니다. 프로젝트의 모든 Android 라이브러리에 있는 총 메서드 개수가 이 한도를 초과하면 빌드가 실패합니다.

Unity는 2017.2 버전에 Minification(축소) 기능을 도입했습니다. 이는 Proguard(또는 Unity 일부 버전의 다른 도구)를 사용하여 사용하지 않는 코드를 제거하는 기능으로 단일 dex 파일에 참조된 메서드의 총 개수를 줄일 수 있습니다. 이 옵션은 Player Settings(플레이어 설정) > Android > Publishing Settings(게시 설정) > Minify(축소)에서 찾을 수 있습니다. 옵션은 Unity 버전마다 다를 수 있으므로 공식 Unity 문서를 참조하세요.

참조된 메서드의 개수가 여전히 한도를 초과하는 경우 또 다른 옵션은 multidex를 사용 설정하는 것입니다. Unity에서 이를 수행하는 방법에는 여러 가지가 있습니다.

  • Player Settings 아래의 Custom Gradle Template이 사용 설정되어 있으면 mainTemplate.gradle을 수정합니다.
  • Android 스튜디오를 사용하여 내보낸 프로젝트를 빌드하는 경우 모듈 수준 build.gradle 파일을 수정합니다.

자세한 내용은 멀티덱스 사용자 가이드를 참조하세요.

minSdkVersion 23을 사용하여 Android용으로 빌드할 때 발생하는 문제

Android용으로 빌드할 때 minSdkVersion 23을 타겟팅하면 덱싱 단계(일반적으로 Gradle 작업 ':launcher:mergeExtDexDebug')에서 실패할 수 있으며, 이 경우 Android 라이브러리 중 하나를 '변환하지 못했습니다'라는 메시지가 표시됩니다. 이는 대부분의 Unity 편집기에서 사용하는 Android SDK의 기본 dex 도구에 있는 버그로 인해 발생하며 다음과 같은 여러 가지 방법으로 수정할 수 있습니다.

  • minSdkVersion을 24로 설정합니다.
  • Player Settings(플레이어 설정) > Android > Publishing Settings(게시 설정) > Minify(축소)에서 Android 축소를 사용 설정합니다.
  • 다음을 settingsTemplate.gradle 파일에 추가하여 다른 버전의 dex 도구를 지정합니다.
buildscript {
  repositories {
    mavenLocal()
    maven { url 'https://maven.google.com'  }
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools:r8:8.3.37'
  }
}

CocoaPods를 사용하여 iOS용으로 빌드할 때 발생하는 문제

iOS용으로 빌드할 경우 언어 또는 UTF-8 인코딩 오류로 인해 CocoaPods 설치에 실패할 수 있습니다. 현재 이 문제를 해결하는 방법에는 여러 가지가 있습니다.

  • 터미널에서 pod install을 직접 실행하고 결과로 생성되는 xcworkspace 파일을 엽니다.

  • CocoaPods를 1.10.2 버전으로 다운그레이드합니다. 이 문제는 버전 1.11 이상에서만 나타납니다.

  • ~/.bash_profile 또는 이와 동등한 위치에 export LANG=en_US.UTF-8을 추가합니다.

Firebase Unity SDK의 버전을 업데이트하는 방법

Firebase Unity SDK의 버전을 업데이트하는 과정은 버전을 처음 가져온 방법에 따라 다릅니다. 다음은 두 가지 가져오기 방법입니다.

  • 프로젝트의 Assets/ 디렉터리에 있는 .unitypackage 파일을 가져오기
  • Unity Package Manager(UPM)를 사용하여 가져오기
    • Unity 2018.4 이상에서 패키지를 관리하는 데 권장되는 방법입니다.
    • 이 방법을 사용하면 향후 버전 업데이트를 더 쉽게 수행하고 Assets/ 디렉터리를 깔끔하게 유지할 수 있습니다.

Unity 프로젝트에서는 한 가지 가져오기 방법으로 모든 Firebase 패키지를 관리해야 합니다. 아래 안내에 따라 개별 패키지 버전을 업데이트할 뿐 아니라 필요한 경우 패키지 관리를 UPM으로 마이그레이션(권장되는 가져오기 방법)할 수도 있습니다.