Nesta página, você verá dicas e soluções de problemas específicos para o Unity que podem ser encontrados ao usar o Firebase.
Você está enfrentando algum outro desafio ou seu problema não está descrito abaixo? Confira as Perguntas frequentes sobre o Firebase para ver mais dúvidas relacionadas ao Firebase ou a um produto específico.
Um problema com um único dex ao criar um app Android
Ao criar um app para Android, você pode encontrar uma falha de compilação relacionada a ter um único arquivo dex. A mensagem de erro será semelhante à seguinte, caso seu projeto esteja configurado para usar o sistema de compilação do Gradle.
Cannot fit requested classes in a single dex file.
Os arquivos Dalvik Executable (.dex) são usados para conter um conjunto de definições de classe
e os dados associados ao grupo de apps para Android (.apk). Um único arquivo
dex está limitado a referências a métodos 65.536. A compilação falhará se o número
total de métodos de todas as bibliotecas Android no projeto exceder esse limite.
O Unity introduziu a Minimização em 2017.2, que usa o Proguard (ou outras ferramentas em algumas versões do Unity) para remover o código não utilizado, o que pode reduzir o número total de métodos referenciados em um único arquivo dex. A opção pode ser encontrada em Player Settings > Android > Publishing Settings > Minify. As opções podem ser diferentes em versões diferentes do Unity. Portanto, consulte a documentação oficial do Unity.
Se o número de métodos referenciados ainda exceder o limite, outra opção será
ativar multidex. Há várias maneiras de fazer isso no Unity:
- Se
Custom Gradle TemplateemPlayer Settingsestiver ativado, modifiquemainTemplate.gradle. - Se você usar o Android Studio para criar o projeto exportado, modifique
o arquivo
build.gradledo módulo.
Saiba mais detalhes no Guia do usuário do multidex.
Problemas ao criar para Android com minSdkVersion 23
Ao criar para o Android, se você segmentar o minSdkVersion 23, ele poderá falhar na
etapa de dexação, geralmente na tarefa do Gradle ":launcher:mergeExtDexDebug", onde
ele dirá que "Falha ao transformar" uma das bibliotecas do Android. Isso é
causado por um bug na ferramenta dex padrão no SDK do Android que a maioria
dos editores do Unity usa e pode ser corrigido de algumas maneiras:
- Defina
minSdkVersioncomo 24. - Ative a minificação do Android em Player Settings > Android > Publishing Settings > Minify.
- Especifique uma versão diferente da ferramenta dex adicionando o seguinte ao
arquivo
settingsTemplate.gradle:
buildscript {
repositories {
mavenLocal()
maven { url 'https://maven.google.com' }
mavenCentral()
}
dependencies {
classpath 'com.android.tools:r8:8.3.37'
}
}
Problemas na criação para iOS com o Cocoapods
Durante a criação para iOS, a instalação do Cocoapod pode falhar com um erro sobre a localidade do idioma ou a codificação UTF-8. No momento, há várias maneiras diferentes de contornar o problema.
No terminal, execute
pod installdiretamente e abra o arquivo xcworkspace resultante.Faça o downgrade da versão do Cocoapods para 1.10.2. O problema existe apenas na versão 1.11 e mais recentes.
No seu
~/.bash_profileou equivalente, adicioneexport LANG=en_US.UTF-8
Como atualizar a versão dos SDKs do Firebase para Unity
O processo para atualizar as versões dos SDKs do Firebase para Unity depende de como eles foram importados inicialmente. Veja os dois métodos de importação alternativos:
- Como importar arquivos
.unitypackageno diretórioAssets/do projeto - Como importar usando o
Unity Package Manager
(UPM)
- Essa é a maneira recomendada de gerenciar pacotes no Unity 2018.4+.
- Use esse método para facilitar futuras atualizações de versão e para limpar o
diretório
Assets/.
No seu projeto Unity, use apenas um método de importação para gerenciar todos os pacotes do Firebase. As instruções abaixo podem ser usadas para atualizar a versão dos pacotes individuais, bem como para migrar o gerenciamento de pacotes para o UPM (o método de importação recomendado), se necessário.