Ricevi report leggibili sugli arresti anomali nella dashboard di Crashlytics


Per impostazione predefinita, Firebase Crashlytics esegue automaticamente l'instrumentazione del progetto Flutter per caricare i file di simboli necessari che assicurano che i report sugli arresti anomali siano deoffuscati e leggibili.

Purtroppo, in alcuni casi il progetto potrebbe non essere completamente configurato. Questa guida illustra il funzionamento dell'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 Flutter e l'esecuzione del comando flutterfire configure tenteranno di aggiungere uno script di esecuzione all'area di lavoro Xcode del progetto che trova e carica i file di simboli dSYM necessari su Crashlytics.Crashlytics Senza questi file, nella dashboard di Crashlytics viene visualizzato un avviso "File dSYM mancante" e le eccezioni verranno trattenute dal backend fino al caricamento dei file mancanti.

Se si verifica 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 denominato [firebase_crashlytics] Crashlytics Upload Symbols è stato aggiunto alle fasi di compilazione 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 progetto Flutter utilizza il flag --split-debug-info (e, facoltativamente, anche il flag --obfuscate), sono necessari passaggi aggiuntivi per mostrare tracce dello stack leggibili per l'app.

Assicurati che il progetto utilizzi la configurazione della versione consigliata (Flutter 3.12.0 e plug-in Crashlytics Flutter 3.3.4 e versioni successive) 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 compilazione 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), 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 riga seguente:

    // ... 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 progetto Flutter utilizza il flag --split-debug-info (e, facoltativamente, anche il flag --obfuscate), sono necessari passaggi aggiuntivi per mostrare tracce dello stack leggibili per l'app.

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

Dalla directory principale del progetto Flutter, esegui il seguente comando:

firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • FIREBASE_APP_ID: il tuo 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 viene passata al flag --split-debug-info durante la compilazione dell'applicazione

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