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:
Localize e abra o arquivo do espaço de trabalho Xcode no diretório iOS do seu projeto (
FLUTTER_PROJECT_NAME /ios/Runner.xcworkspace
).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 .
Se este script de execução não existir, você poderá adicioná-lo manualmente:
Localize o ID do aplicativo Firebase para seu aplicativo Apple. Aqui estão dois lugares diferentes onde você pode encontrar esse ID:
No console do Firebase, acesse seu
No diretório de nível superior do seu projeto Flutter, encontre o arquivo
firebase_options.dart
. O ID do aplicativo Firebase para seu aplicativo Apple é rotulado comoGOOGLE_APP_ID
.
Clique em
> Nova fase de execução de script .Certifique-se de que esta nova fase Run Script seja a última fase de construção do seu projeto. Caso contrário, o Crashlytics não poderá processar dSYMs adequadamente.
Expanda a nova seção Executar Script .
No campo script (localizado sob o rótulo Shell ), adicione os seguintes scripts de execução.
Esses scripts processam seus arquivos dSYM e carregam os arquivos no Crashlytics.
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase --validate -ai FIREBASE_APP_ID -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase -ai FIREBASE_APP_ID -- $DWARF_DSYM_FOLDER_PATH/App.framework.dSYM
- FIREBASE_APP_ID : seu ID do aplicativo Firebase Apple (não seu ID do pacote Apple)
Exemplo de ID do aplicativo Apple do Firebase:1:1234567890:ios:321abc456def7890
Aqui estão duas maneiras de encontrar seu ID do aplicativo Firebase:
No arquivo
GoogleService-Info.plist
, o ID do aplicativo é o valorGOOGLE_APP_ID
; ouNo console do Firebase, acesse as configurações do projeto . Role para baixo até o cartão Seus aplicativos e clique no aplicativo Firebase desejado para encontrar seu ID do aplicativo.
- FIREBASE_APP_ID : seu ID do aplicativo Firebase Apple (não seu ID do pacote Apple)
Na seção Arquivos de entrada , adicione os caminhos para os locais dos seguintes arquivos:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
l10n${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
Se o script de execução existir, consulte o guia específico da Apple para solucionar problemas de dSYM . Você precisará seguir as seguintes etapas adicionais se optar por fazer upload de seus arquivos dSYM por meio do processo descrito:
Localize o ID do aplicativo Firebase para seu aplicativo Apple. Aqui estão dois lugares diferentes onde você pode encontrar esse ID:
No console do Firebase, acesse seu
No diretório de nível superior do seu projeto Flutter, encontre o arquivo
firebase_options.dart
. O ID do aplicativo Firebase para seu aplicativo Apple é rotulado comoGOOGLE_APP_ID
.
Ao executar o script
upload-symbols
, use
em vez de-ai FIREBASE_APPLE_APP_ID-gsp /path/to/GoogleService-Info.plist
.
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
Aqui estão duas maneiras de encontrar seu ID do aplicativo Firebase:
No arquivo
google-services.json
, o ID do aplicativo é o valormobilesdk_app_id
; ouNo console do Firebase, acesse as configurações do projeto . Role para baixo até o cartão Seus aplicativos e clique no aplicativo Firebase desejado para encontrar seu ID do aplicativo.
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 .