이 페이지에서는 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으로 마이그레이션(권장되는 가져오기 방법)할 수도 있습니다.