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:
Individua e apri il file dell'area di lavoro Xcode nella directory iOS del progetto
(FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).
Identifica se uno script di esecuzione denominato
[firebase_crashlytics] Crashlytics Upload Symbols è stato aggiunto alle fasi di compilazione del target Runner.
Lo script di esecuzione per il caricamento automatico dei file dSYM non esiste
Se questo script di esecuzione non esiste, puoi aggiungerlo manualmente:
Individua l'ID app Firebase per la tua app per Apple. Ecco due diversi punti
dove puoi trovare questo ID:
Nella console Firebase, vai a
settings > Impostazioni progetto.
Scorri verso il basso fino alla scheda Le tue app, poi fai clic sulla tua app Firebase per Apple per visualizzare le informazioni dell'app, incluso l'ID app.
Nella directory di primo livello del progetto Flutter, individua il file firebase_options.dart. L'ID app Firebase per la tua app Apple è contrassegnato come GOOGLE_APP_ID.
Fai clic su add >
Nuova fase di esecuzione dello script.
Assicurati che questa nuova fase Esegui script sia l'ultima fase di compilazione del progetto. In caso contrario, Crashlytics non può elaborare correttamente i file dSYM.
Espandi la nuova sezione Esegui script.
Nel campo dello script (sotto l'etichetta Shell), aggiungi i seguenti script di esecuzione.
Questi script elaborano i file dSYM e li caricano su
Crashlytics.
FIREBASE_APP_ID: il tuo ID app Firebase per Apple (non il tuo ID bundle Apple)
Esempio di ID app Firebase per Apple: 1:1234567890:ios:321abc456def7890
Hai bisogno di trovare il tuo ID app Firebase?
Ecco due modi per trovare l'ID app Firebase:
Nel file GoogleService-Info.plist, l'ID app è il valore GOOGLE_APP_ID.
Nella console Firebase, vai alle Impostazioni del progetto.
Scorri verso il basso fino alla scheda Le tue app, quindi fai clic sull'app Firebase che ti interessa per trovare il relativo ID app.
Nella sezione File di input, aggiungi i percorsi delle posizioni dei seguenti file:
Scopri perché sono necessarie le posizioni di questi file
Xcode cerca questi file di input nelle posizioni specificate per assicurarsi che i file di compilazione siano disponibili per lo script di esecuzione. Inoltre, se è attivata la sandboxing degli script utente, Xcode consente allo script di esecuzione di accedere solo ai file specificati in File di input.
Fornendo la posizione dei file dSYM del progetto, consente
Crashlytics di elaborare i file dSYM.
Fornendo la posizione del file compilato
GoogleService-Info.plist
dell'app, Crashlytics può associare i file dSYM alla tua
app Firebase.
Fornendo la posizione del file eseguibile dell'app, lo script di esecuzione consente di evitare caricamenti duplicati dello stesso file dSYM. Tieni presente che i file binari dell'app non vengono caricati.
Esiste uno script di esecuzione per il caricamento automatico dei file dSYM
Individua l'ID app Firebase per la tua app per Apple. Ecco due diversi punti
dove puoi trovare questo ID:
Nella console Firebase, vai a
settings > Impostazioni progetto.
Scorri verso il basso fino alla scheda Le tue app, poi fai clic sulla tua app Firebase per Apple per visualizzare le informazioni dell'app, incluso l'ID app.
Nella directory di primo livello del progetto Flutter, individua il file firebase_options.dart. L'ID app Firebase per la tua app Apple è contrassegnato come GOOGLE_APP_ID.
Quando esegui lo script upload-symbols, utilizza
-ai FIREBASE_APPLE_APP_ID anziché
-gsp /path/to/GoogleService-Info.plist.
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:
Nel file di build a livello di app (android/app/build.gradle), controlla la riga seguente:
// ... other importsandroid{// ... your android config}dependencies{// ... your dependencies}// This section must appear at the bottom of the fileapplyplugin:'com.google.gms.google-services'applyplugin:'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_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
Hai bisogno di trovare il tuo ID app Firebase?
Ecco due modi per trovare l'ID app Firebase:
Nel file google-services.json, l'ID app è il valore mobilesdk_app_id.
Nella console Firebase, vai alle Impostazioni del progetto.
Scorri verso il basso fino alla scheda Le tue app, quindi fai clic sull'app Firebase che ti interessa per trovare il relativo ID app.
PATH/TO/symbols: la stessa directory che viene passata al flag --split-debug-info durante la compilazione dell'applicazione