Ottenere report leggibili sugli arresti anomali nella dashboard di Crashlytics (Flutter)
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Per impostazione predefinita, Firebase Crashlytics strumenta automaticamente il 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 Crashlytics plug-in Flutter e l'esecuzione del
flutterfire configure comando tenteranno di aggiungere uno script di esecuzione all'
area di lavoro Xcode del progetto che trova e carica i file di simboli dSYM necessari
in Crashlytics. Senza questi file, nella dashboard Crashlytics verrà visualizzato un avviso "dSYM mancante" e le eccezioni verranno mantenute dal backend finché non verranno caricati i file mancanti.
Se riscontri 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).
Verifica se è stato aggiunto uno script di esecuzione denominato [firebase_crashlytics] Crashlytics Upload Symbols alle fasi di build della destinazione 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 Apple. Ecco due posizioni diverse in cui puoi trovare questo ID:
Nella Firebase console, vai a
settings > Impostazioni progetto.
Vai alla scheda Le tue app, quindi fai clic sulla tua app Firebase Apple per visualizzare le informazioni dell'app, incluso il relativo ID app.
Nella directory di primo livello del progetto Flutter, trova il file firebase_options.dart. L'ID app Firebase per la tua app Apple è etichettato come appId.
Fai clic su add >
Nuova fase dello script di esecuzione.
Assicurati che questa nuova fase Script di esecuzione sia l'ultima fase di build del progetto. In caso contrario, Crashlytics non può elaborare correttamente i file dSYM.
Espandi la nuova sezione Script di esecuzione.
Nel campo dello script (situato sotto l'etichetta Shell), aggiungi i seguenti script di esecuzione.
Questi script elaborano i file dSYM e li caricano in
Crashlytics.
FIREBASE_APP_ID: l'ID app Firebase Apple (non l'
ID pacchetto Apple)
Esempio di ID app Firebase Apple: 1:1234567890:ios:321abc456def7890
Devi trovare l'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; oppure
Nella Firebase console, vai a
Impostazioni progetto.
Vai 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 per le 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 build siano disponibili per lo script di esecuzione. Inoltre, se
è attivata la sandbox dello script utente, Xcode consente allo script di esecuzione di accedere solo ai file specificati in File di input.
Se fornisci la posizione dei file dSYM del progetto,
Crashlytics può elaborare i file dSYM.
Se fornisci la posizione del file creato dell'app, Crashlytics può associare i file dSYM alla tua app Firebase.GoogleService-Info.plist
Se fornisci la posizione dell'eseguibile dell'app, lo script di esecuzione può impedire caricamenti duplicati dello stesso file dSYM. Tieni presente che i file binari dell'app
non vengono caricati.
Lo script di esecuzione per il caricamento automatico dei file dSYM esiste
Individua l'ID app Firebase per la tua app Apple. Ecco due posizioni diverse in cui puoi trovare questo ID:
Nella Firebase console, vai a
settings > Impostazioni progetto.
Vai alla scheda Le tue app, quindi fai clic sulla tua app Firebase Apple per visualizzare le informazioni dell'app, incluso il relativo ID app.
Nella directory di primo livello del progetto Flutter, trova il file firebase_options.dart. L'ID app Firebase per la tua app Apple è etichettato come appId.
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 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 tuo progetto
possa generare e caricare automaticamente i simboli Flutter (file dSYM) in
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 in
the Firebase console potrebbero essere offuscati se l'offuscamento è attivato.
Assicurati che le seguenti righe siano presenti in build.gradle a livello di progetto e in 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 seguente riga:
// ... 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 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 l'Firebaseinterfaccia a riga di comando (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 il seguente comando:
FIREBASE_APP_ID: l'ID app Firebase Android (non il
nome del pacchetto)
Esempio di ID app Firebase Android: 1:567383003300:android:17104a2ced0c9b9b
Devi trovare l'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; oppure
Nella Firebase console, vai a
Impostazioni progetto.
Vai 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
passi al flag --split-debug-info durante la creazione dell'applicazione