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:

  1. 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).

  2. Identifique se um script de execução chamado [firebase_crashlytics] Crashlytics Upload Symbols foi adicionado às fases de compilação do destino do executor.

    Consulte a seção aplicável abaixo para saber se o script de execução não existe ou existe o script de execução.

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:

    dependencies {
    // ... other dependencies
    
    classpath 'com.google.gms:google-services:4.3.5'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
  • No arquivo de compilação do nível do app (android/app/build.gradle), verifique a seguinte linha:

    // ... other imports
    
    android {
    // ... your android config
    }
    
    dependencies {
    // ... your dependencies
    }
    
    // This section must appear at the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    apply plugin: '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 crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • 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

  • PATH/TO/symbols: o mesmo diretório que você passa para a flag --split-debug-info ao criar o aplicativo.

Se os problemas persistirem, consulte o Guia específico do Android para solução de problemas com relatórios ofuscados.