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 la configurazione del progetto potrebbe non essere completata. 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 nonesiste 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 plug-in Flutter 3.3.4+) in modo che il progetto possa generare e caricare automaticamente i simboli Flutter (file dSYM) su Crashlytics.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 è 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 riga seguente:

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