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 di simboli necessari che garantiscono che i report sugli arresti anomali siano deoffuscati e leggibili.

Purtroppo, in alcuni casi il progetto potrebbe non essere configurato completamente. Questa guida descrive cosa fa l'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

L'aggiunta del plug-in Crashlytics Flutter e l'esecuzione del comando flutterfire configure tenteranno di aggiungere uno script di esecuzione allo spazio di lavoro Xcode del tuo progetto che trova e carica i file di simboli dSYM necessari su Crashlytics. Senza questi file, visualizzerai un avviso "dSYM mancante" nella dashboard 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 del workspace Xcode nella directory iOS del progetto (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).

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

    Consulta la sezione applicabile di seguito per verificare se lo script di esecuzione non esiste o se 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 stack trace leggibili per la tua app.

Assicurati che il tuo progetto utilizzi la configurazione della versione consigliata (Flutter 3.12.0+ e Crashlytics plug-in Flutter 3.3.4+) in modo che il progetto 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 tuo progetto. Senza queste dipendenze, i report sugli arresti anomali nella console Firebase potrebbero essere offuscati se l'offuscamento è attivato.

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), controlla la 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 la CLI 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 stack trace leggibili per la tua app.

Utilizza la CLI Firebase (v.11.9.0+) 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.