Ottenere report leggibili sugli arresti anomali nella dashboard di Crashlytics (Flutter)

Seleziona la piattaforma: iOS+ Android Flutter Unity


Per impostazione predefinita, Firebase Crashlytics instrumenta automaticamente il tuo progetto Flutter per caricare i file dei simboli necessari che garantiscono che i report sugli arresti anomali siano deoffuscati e leggibili.

Purtroppo, in alcuni casi il progetto potrebbe non essere completamente configurato. Questa guida descrive le operazioni eseguite dall'automazione e fornisce i primi passaggi per eseguire il debug della configurazione del progetto.

Piattaforme Apple

Controlla la configurazione per il caricamento dei file dSYM

Se aggiungi il plug-in Flutter Crashlytics ed esegui il comando flutterfire configure, verrà eseguito un tentativo di aggiungere uno script di esecuzione all'area di lavoro Xcode del progetto che trova e carica i file dei simboli dSYM necessari in Crashlytics. Senza questi file, vedrai un avviso "dSYM mancante" nella dashboard di Crashlytics e le eccezioni verranno trattenute dal backend finché non verranno caricati i file mancanti.

Se riscontri questo problema, assicurati innanzitutto di aver installato lo script di esecuzione:

  1. Individua e apri il file dell'area di lavoro Xcode nella directory iOS del progetto (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).

  2. Identifica se uno script di esecuzione intitolato [firebase_crashlytics] Crashlytics Upload Symbols è stato aggiunto alle fasi di build del target Runner.

    Consulta la sezione applicabile di seguito per sapere se lo script di esecuzione non esiste o se lo script di esecuzione esiste.

Controlla la configurazione della versione per Flutter e Crashlytics (se utilizzi il flag --split-debug-info)

Se il tuo progetto Flutter utilizza il flag --split-debug-info (e, facoltativamente, anche il flag --obfuscate), sono necessari passaggi aggiuntivi per mostrare analisi dello stack leggibili per la tua app.

Assicurati che il tuo progetto utilizzi la configurazione della versione consigliata (Flutter 3.12.0+ e plug-in Flutter Crashlytics 3.3.4+) in modo che possa generare e caricare automaticamente i simboli Flutter (file dSYM) su Crashlytics.

Android

Controlla la configurazione delle dipendenze

Il comando flutterfire configure tenta di aggiungere le dipendenze necessarie ai file di build Gradle del progetto. Senza queste dipendenze, i report sugli arresti anomali nella console Firebase potrebbero essere offuscati se l'offuscamento è attivo.

Assicurati che le seguenti righe siano presenti nel file build.gradle a livello di progetto e nel file build.gradle a livello di app:

  • Nel file di build a livello di progetto (android/build.gradle), verifica la presenza della seguente riga:

    dependencies {
    // ... other dependencies
    
    classpath 'com.google.gms:google-services:4.3.5'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
  • Nel file di build a livello di app (android/app/build.gradle), controlla la seguente riga:

    // ... 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'

Verifica di utilizzare l'interfaccia a riga di comando per caricare i simboli Flutter (se utilizzi il flag --split-debug-info)

Se il tuo progetto Flutter utilizza il flag --split-debug-info (e, facoltativamente, anche il flag --obfuscate), sono necessari passaggi aggiuntivi per mostrare analisi dello stack leggibili per la tua app.

Utilizza l'interfaccia a riga di comando Firebase (v.11.9.0 e successive) per caricare i simboli di debug di Flutter. Devi caricare i simboli di debug prima di segnalare un arresto anomalo da una build di codice offuscato.

Dalla directory principale del progetto Flutter, esegui questo comando:

firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • FIREBASE_APP_ID: l'ID app Firebase per Android (non il nome del pacchetto)
    Esempio di ID app Firebase per Android: 1:567383003300:android:17104a2ced0c9b9b

  • PATH/TO/symbols: la stessa directory che passi al flag --split-debug-info durante la creazione dell'applicazione

Se i problemi persistono, consulta la guida specifica per Android per la risoluzione dei problemi relativi ai report offuscati.