En esta página, se ofrecen sugerencias y solución de problemas específicos de Unity que pueden ocurrir mientras usas Firebase.
¿Tienes otras dificultades o tu problema no se describe en esta página? Asegúrate de consultar las Preguntas frecuentes principales de Firebase para obtener más información general o específica sobre Firebase.
Un error en el archivo dex único mientras se compila la app para Android
Cuando compilas una app para Android, es posible que experimentes una falla de compilación relacionada con un archivo dex único. El mensaje de error es similar al siguiente, si el proyecto está configurado para usar el sistema de compilación de Gradle.
Cannot fit requested classes in a single dex file.
Los archivos Dalvik Executable (.dex
) se usan para contener un conjunto de definiciones de clase y sus datos adjuntos asociados de aplicaciones para Android (.apk
). Un solo archivo dex se limita a la referencia a 65,536 métodos. La compilación fallará si la cantidad total de métodos de todas las bibliotecas de Android de tu proyecto supera este límite.
Unity agregó la reducción en su versión 2017.2, que usa ProGuard (y otras herramientas en algunas versiones de Unity) para quitar el código que no se utiliza, lo que puede reducir la cantidad total de métodos de referencia en un solo archivo dex. Esta opción se encuentra en Player Settings > Android > Publishing Settings > Minify. Las opciones pueden variar en distintas versiones de Unity, así que consulta la documentación oficial de Unity.
Si la cantidad de métodos a los que se hace referencia aún excede el límite, otra opción es habilitar multidex
. Hay muchas formas de lograrlo en Unity:
- Si
Custom Gradle Template
enPlayer Settings
está habilitado, modificamainTemplate.gradle
. - Si usas Android Studio para compilar el proyecto exportado, modifica el archivo
build.gradle
de nivel de módulo.
Puedes encontrar más información en la guía del usuario de multidex.
Problemas relacionados con la compilación para Android con minSdkVersion 23
Cuando compilas para Android, si te orientas a minSdkVersion
23, es posible que falle
en el paso de dexing, por lo general, en la tarea de Gradle ':launcher:mergeExtDexDebug', que
dirá que no se pudo transformar una de las bibliotecas de Android. Esto se
debe a un error en la herramienta dex predeterminada del SDK de Android que
usan la mayoría de los editores de Unity y se puede corregir de varias maneras:
- Establece
minSdkVersion
en 24. - Activa la reducción para Android en Player Settings > Android > Publishing Settings > Minify.
- Agrega lo siguiente a tu archivo
settingsTemplate.gradle
para especificar una versión diferente de la herramienta dex:
buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.google.com' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools:r8:8.3.37'
}
}
Problemas relacionados con la compilación para iOS con CocoaPods
Cuando realices compilaciones para iOS, es posible que falle la instalación de CocoaPods debido a un error relacionado con la configuración regional del idioma o la codificación UTF-8. Actualmente, existen varias formas de solucionar el problema.
Desde la terminal, ejecuta
pod install
directamente y abre el archivo xcworkspace resultante.Cambia la versión de CocoaPods a la 1.10.2. El problema solo existe en la versión 1.11 y en las posteriores.
En tu
~/.bash_profile
o equivalente, agregaexport LANG=en_US.UTF-8
.
Cómo actualizar la versión de los SDK de Firebase Unity
El proceso para actualizar las versiones de los SDK de Firebase Unity depende de cómo se importaron inicialmente. A continuación, se muestran los dos métodos de importación alternativos:
- Importa archivos
.unitypackage
en el directorioAssets/
de tu proyecto - Importa con Unity Package Manager (UPM)
- Esta es la forma recomendada de administrar paquetes en Unity 2018.4+.
- Usa este método para facilitar las futuras actualizaciones de versiones y limpiar tu directorio
Assets/
.
En tu proyecto de Unity, solo debes usar un método de importación para administrar todos tus paquetes de Firebase. Las siguientes instrucciones no solo pueden usarse para actualizar la versión de paquetes individuales, sino también para migrar la administración de paquetes a UPM (el método de importación recomendado) si es necesario.