Receber relatórios de erros legíveis no painel do Crashlytics
Por padrão, o Firebase Crashlytics instrumenta automaticamente seu projeto
do Flutter para fazer upload dos arquivos de símbolos necessários, que garantem a
desofuscação e a legibilidade por humanos dos relatórios de erros.
Há casos que podem resultar na configuração
incompleta do projeto. Este guia descreve o que a automação faz e fornece as primeiras
etapas para depurar a configuração do projeto.
Plataformas da Apple
Verifique sua configuração para fazer upload de arquivos dSYM
Ao adicionar o plug-in do Flutter do Crashlytics e executar o
comando flutterfire configure, é realizada a tentativa de adicionar um script de execução ao
espaço de trabalho do Xcode do projeto, que encontra e faz upload dos arquivos de símbolo dSYM necessários
para o Crashlytics. Sem esses arquivos, um alerta dSYM ausente será exibido no
painel do Crashlytics e as exceções serão retidas pelo back-end até que
os arquivos ausentes sejam enviados por upload.
Caso tenha esse problema, primeiro verifique se o script de execução está instalado:
Localize e abra o arquivo do espaço de trabalho do Xcode no diretório do iOS do seu projeto
(FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).
Identifique se um script de execução chamado
[firebase_crashlytics] Crashlytics Upload Symbols foi adicionado às
fases de compilação do destino do executor.
O script de execução para o upload automático de dSYMs não existe.
Se este script de execução não existir, será possível adicioná-lo manualmente:
Localize o ID do app do Firebase para seu app Apple. Ele pode ser encontrado
em dois lugares:
No console do Firebase, acesse
settings > Configurações do projeto.
Role a tela para baixo até o card Seus apps e clique no
app Apple do Firebase para acessar as informações dele, incluindo o
ID do app.
Localize o arquivo firebase_options.dart no diretório de nível superior
do projeto do Flutter. O ID do app do Firebase para seu aplicativo da Apple é
identificado como GOOGLE_APP_ID.
Clique em add >
New Run Script Phase.
Verifique se essa nova fase Run Script é a última fase do build do seu projeto.
Caso contrário, o Crashlytics não vai processar dSYMs corretamente.
Expanda a nova seção Run Script.
No campo do script (localizado no rótulo Shell), adicione os
scripts de execução a seguir.
Esses scripts processam seus arquivos dSYM e fazem upload dos arquivos para
o Crashlytics.
FIREBASE_APP_ID: o ID do app Apple do Firebase (não o ID do pacote da Apple).
Exemplo de ID do app Apple do Firebase: 1:1234567890:ios:321abc456def7890
Precisa encontrar o ID do app Firebase?
Veja duas maneiras de encontrar o ID do app Firebase:
No arquivo GoogleService-Info.plist, o ID do app é o
valor GOOGLE_APP_ID; ou
No console do Firebase, acesse as
Configurações do projeto.
Role a tela para baixo até o card Seus apps e clique no app Firebase
que você quer para encontrar o ID respectivo.
Na seção Input Files, adicione os caminhos para os locais dos
arquivos a seguir:
Entenda por que os locais desses arquivos são
necessários
O Xcode procura nos locais especificados por esses arquivos de entrada para garantir que os arquivos de build estejam disponíveis para o script de execução. Além disso, se
User Script Sandboxing estiver ativado, o Xcode só vai permitir que o script de
execução acesse arquivos especificados em Input Files.
Fornecer a localização dos arquivos dSYM do seu projeto permite
que o Crashlytics processe dSYMs.
Fornecer a localização do arquivo
GoogleService-Info.plist
de build do seu app permite que o Crashlytics associe os dSYMs ao seu
app do Firebase.
Fornecer a localização do executável do seu app permite que o script de
execução impeça uploads duplicados do mesmo dSYM. Os binários do app não são enviados.
Existe um script de execução para o upload automático dos arquivos dSYMs
Localize o ID do app do Firebase para seu app Apple. Ele pode ser encontrado
em dois lugares:
No console do Firebase, acesse
settings > Configurações do projeto.
Role a tela para baixo até o card Seus apps e clique no
app Apple do Firebase para acessar as informações dele, incluindo o
ID do app.
Localize o arquivo firebase_options.dart no diretório de nível superior
do projeto do Flutter. O ID do app do Firebase para seu aplicativo da Apple é
identificado como GOOGLE_APP_ID.
Ao executar o script upload-symbols, use
-ai FIREBASE_APPLE_APP_ID em vez de
-gsp /path/to/GoogleService-Info.plist.
Verifique a configuração de versão do Flutter e do Crashlytics(se estiver usando a flag --split-debug-info)
Caso seu projeto do Flutter use a flag --split-debug-info (e, opcionalmente,
também a flag --obfuscate), outras etapas serão necessárias para mostrar stack traces legíveis
no seu app.
Verifique se o projeto está usando a configuração de versão recomendada
(Flutter 3.12.0+ e plug-in do Flutter do Crashlytics 3.3.4+) para que ele possa
gerar e fazer upload automaticamente de símbolos do Flutter (arquivos dSYM) para
o Crashlytics.
Android
Verificar a configuração da dependência
O comando flutterfire configure tenta adicionar as dependências necessárias aos
arquivos de build do Gradle do seu projeto. Sem essas dependências e com a ofuscação ativada, os relatórios de erros no
console do Firebase poderão ser ofuscados.
Verifique se as linhas a seguir estão presentes nos níveis do projeto build.gradle
e do app build.gradle:
No arquivo de compilação do nível do projeto (android/build.gradle), verifique a
seguinte linha:
No arquivo de compilação do nível do app (android/app/build.gradle), verifique a
seguinte linha:
// ... other importsandroid{// ... your android config}dependencies{// ... your dependencies}// This section must appear at the bottom of the fileapplyplugin:'com.google.gms.google-services'applyplugin:'com.google.firebase.crashlytics'
Verifique se você está usando a CLI para fazer upload de símbolos do Flutter (se estiver usando a flag --split-debug-info)
Caso seu projeto do Flutter use a flag --split-debug-info (e, opcionalmente,
também a flag --obfuscate), outras etapas serão necessárias para mostrar stack traces legíveis
no seu app.
Use a CLI do Firebase (v.11.9.0+) para fazer o upload de símbolos de depuração
do Flutter. Você precisa fazer upload dos símbolos de depuração antes de relatar uma falha de um
build de código ofuscado.
No diretório raiz do projeto do Flutter, execute o seguinte comando:
FIREBASE_APP_ID: seu ID do app Android do Firebase (não o
nome do pacote)
Exemplo de ID do app Android do Firebase: 1:567383003300:android:17104a2ced0c9b9b
Precisa encontrar o ID do app Firebase?
Veja duas maneiras de encontrar o ID do app Firebase:
No arquivo google-services.json, o ID do app é o
valor mobilesdk_app_id; ou
No console do Firebase, acesse as
Configurações do projeto.
Role a tela para baixo até o card Seus apps e clique no app Firebase
que você quer para encontrar o ID respectivo.
PATH/TO/symbols: o mesmo diretório que você passa para a flag --split-debug-info ao criar o aplicativo.