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 Template
emPlayer Settings
estiver ativado, modifiquemainTemplate.gradle
. - Se você usar o Android Studio para criar o projeto exportado, modifique
o arquivo
build.gradle
do 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
minSdkVersion
como 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 install
diretamente 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_profile
ou 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
.unitypackage
no 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.