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 .
O script de execução para upload automático de dSYMs nã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.dSYMFIREBASE_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
Precisa encontrar o ID do seu aplicativo Firebase? 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.
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)
Entenda por que as localizações desses arquivos são necessárias
O Xcode procura esses arquivos de entrada nos locais especificados para garantir que os arquivos de construção estejam disponíveis para o script de execução. Além disso, se o User Script Sandboxing estiver ativado, o Xcode permitirá apenas que o script de execução acesse os 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
criado pelo seu aplicativo permite que o Crashlytics associe os dSYMs ao seu aplicativo Firebase. - Fornecer a localização do executável do seu aplicativo permite que o script de execução evite uploads duplicados do mesmo dSYM. Observe que os binários do aplicativo não são carregados .
Existe script de execução para upload automático de dSYMs
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
)
--split-debug-info
)--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.
Android
Verifique sua configuração de dependência
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.
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
)
--split-debug-info
)--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.
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
Precisa encontrar o ID do seu aplicativo Firebase? 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