Obtenha relatórios de falhas legíveis no painel do Crashlytics

Por padrão, o Firebase Crashlytics instrumenta automaticamente seu projeto Flutter para fazer upload dos arquivos de símbolos necessários que garantem que os relatórios de falhas sejam desofuscados e legíveis por humanos.

Infelizmente, há casos que podem fazer com que o projeto não esteja totalmente configurado. Este guia descreve o que a automação faz e fornece as primeiras etapas para depurar a configuração do seu projeto.

Plataformas Apple

Verifique sua configuração para fazer upload de arquivos dSYM

Adicionar o plug-in Crashlytics Flutter e executar o comando flutterfire configure tentará adicionar um script de execução ao espaço de trabalho Xcode do seu projeto que encontra e carrega os arquivos de símbolo dSYM necessários para o Crashlytics. Sem esses arquivos, você verá um alerta "DSYM ausente" no painel do Crashlytics e as exceções serão retidas pelo back-end até que os arquivos ausentes sejam carregados.

Se você tiver esse problema, primeiro certifique-se de ter o script de execução instalado:

  1. Localize e abra o arquivo do espaço de trabalho Xcode no diretório iOS do seu projeto ( FLUTTER_PROJECT_NAME /ios/Runner.xcworkspace ).

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

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

Verifique a configuração da sua versão para Flutter e Crashlytics (se estiver usando o sinalizador --split-debug-info )

Se o seu projeto Flutter usar o sinalizador --split-debug-info (e, opcionalmente, também o sinalizador --obfuscate ), etapas adicionais serão necessárias para mostrar rastreamentos de pilha legíveis para seu aplicativo.

Certifique-se de que seu projeto esteja usando a configuração de versão recomendada (Flutter 3.12.0+ e plug-in Crashlytics Flutter 3.3.4+) para que seu projeto possa gerar e fazer upload automaticamente de símbolos Flutter (arquivos dSYM) para o Crashlytics.

Android

Verifique sua configuração de dependência

O comando flutterfire configure tenta adicionar as dependências necessárias aos arquivos de compilação Gradle do seu projeto. Sem essas dependências, os relatórios de falhas no console do Firebase podem ficar ofuscados se a ofuscação estiver ativada.

Certifique-se de que as seguintes linhas estejam presentes no build.gradle no nível do projeto e no build.gradle no nível do aplicativo:

  • No arquivo de compilação no 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 no nível do aplicativo ( 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 Flutter (se estiver usando o sinalizador --split-debug-info )

Se o seu projeto Flutter usar o sinalizador --split-debug-info (e, opcionalmente, também o sinalizador --obfuscate ), etapas adicionais serão necessárias para mostrar rastreamentos de pilha legíveis para seu aplicativo.

Use a CLI do Firebase (v.11.9.0+) para fazer 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 uma compilação de código ofuscada.

No diretório raiz do seu projeto Flutter, execute o seguinte comando:

firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • FIREBASE_APP_ID : seu ID do aplicativo Android do Firebase (não o nome do seu pacote)
    Exemplo de ID do aplicativo Android do Firebase: 1:567383003300:android:17104a2ced0c9b9b

  • PATH/TO /symbols : O mesmo diretório que você passa para o sinalizador --split-debug-info ao construir o aplicativo

Se os problemas persistirem, consulte o guia específico do Android para solucionar problemas de relatórios ofuscados .