Questa guida rapida descrive come configurare Firebase Crashlytics nella tua app con il plug-in Flutter Crashlytics in modo da poter ricevere report completi sugli arresti anomali nella console Firebase.
La configurazione di Crashlytics prevede l'utilizzo sia di uno strumento a riga di comando sia del tuo IDE. Per completare la configurazione, devi forzare l'eccezione di test per inviare il primo report sugli arresti anomali a Firebase.
Prima di iniziare
Se non l'hai già fatto, configurare e inizializzare Firebase in Flutter progetto.
Consigliato: per visualizzare automaticamente log breadcrumb per comprendere le azioni degli utenti che hanno portato a un evento di arresto anomalo, non irreversibile o ANR. devi abilitare Google Analytics nel tuo progetto Firebase.
Se il tuo progetto Firebase esistente non ha Google Analytics attivata, puoi attivare Google Analytics dalla Integrazioni dei tuoi
nella console > Impostazioni progettoFirebase. Se stai creando un nuovo progetto Firebase, abilita Google Analytics durante il flusso di lavoro di creazione del progetto.
Tieni presente che i log dei breadcrumb sono disponibili per tutte le piattaforme Android e Apple supportate da Crashlytics (tranne watchOS).
Passaggio 1: aggiungi Crashlytics al tuo progetto Flutter
Dalla directory principale del progetto Flutter, esegui il seguente comando per installare il plug-in Flutter per Crashlytics.
Per sfruttare al meglio log breadcrumb, aggiungi anche il plug-in Flutter per Google Analytics alla tua app. Accertati che Google Analytics è abilitato nel tuo progetto Firebase.
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
Dalla directory principale del progetto Flutter, esegui il seguente comando:
flutterfire configure
L'esecuzione di questo comando garantisce che la configurazione Firebase della tua app Flutter sia aggiornata e, per Android, aggiunge il plug-in Crashlytics Gradle obbligatorio all'app.
Al termine, ricrea il progetto Flutter:
flutter run
(Facoltativo) 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 le app.Piattaforme Apple: assicurati che il progetto utilizzi la classe (Flutter 3.12.0+ e Crashlytics il plug-in Flutter 3.3.4+), in modo che il tuo progetto possa generare e caricare automaticamente simboli Flutter (file dSYM) Crashlytics.
Android:utilizza l'interfaccia a riga di comando Firebase (v.11.9.0 e versioni successive) per eseguire il caricamento. Simboli di debug Flutter. Devi caricare i simboli di debug prima Segnalando un arresto anomalo da una build di codice offuscata.
Dalla directory root del tuo progetto Flutter, esegui questo :
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID: l'ID dell'app Firebase per Android (non il tuo 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
Passaggio 2: configura i gestori degli arresti anomali
Puoi rilevare automaticamente tutti gli errori generati all'interno del framework Flutter overriding FlutterError.onError
con
FirebaseCrashlytics.instance.recordFlutterFatalError
:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
// Pass all uncaught "fatal" errors from the framework to Crashlytics
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;
runApp(MyApp());
}
Per individuare gli errori asincroni che non sono gestiti dal framework Flutter, usa
PlatformDispatcher.instance.onError
:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FlutterError.onError = (errorDetails) {
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
};
// Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
PlatformDispatcher.instance.onError = (error, stack) {
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
return true;
};
runApp(MyApp());
}
Per esempi su come gestire altri tipi di errori, consulta Personalizza i report sugli arresti anomali.
Passaggio 3: forza un arresto anomalo di test per completare la configurazione
Per completare la configurazione di Crashlytics e visualizzare i dati iniziali in Crashlytics dashboard della console Firebase, devi forzare l'applicazione di un'eccezione di test lanciate.
Aggiungi alla tua app del codice che puoi utilizzare per forzare l'eccezione di test.
Se hai aggiunto un gestore degli errori che chiama
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
allaZone
di primo livello, puoi usare il seguente codice per aggiungere un pulsante alla tua app che, se premuto, genera un'eccezione di test:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
Crea ed esegui la tua app.
Forza la generazione dell'eccezione di test per inviare la prima report:
Apri l'app dal dispositivo di test o dall'emulatore.
Nell'app, premi il pulsante di test dell'eccezione che hai aggiunto utilizzando il codice riportato sopra.
Vai alla sezione Dashboard Crashlytics della console Firebase per vedere l'arresto anomalo del test.
Se hai aggiornato la console e dopo cinque minuti non vedi ancora l'arresto anomalo del test, abilita la registrazione di debug per verificare se la tua app sta inviando report sugli arresti anomali.
E questo è tutto. Crashlytics sta ora monitorando la tua app per rilevare arresti anomali e,
Android, errori non irreversibili e ANR. Visita il
Dashboard Crashlytics
per visualizzare e analizzare tutti i rapporti e le statistiche.
Passaggi successivi
Personalizzare la configurazione del report sugli arresti anomali aggiungendo report di attivazione, log, chiavi e il monitoraggio di altri dati non irreversibili errori.
Eseguire l'integrazione con Google Play per poter filtrare i report sugli arresti anomali dell'app Android per Google Play canale direttamente nella dashboard Crashlytics. Ciò ti consente di concentrarti meglio della tua dashboard su build specifiche.
Visualizza analisi dello stack e statistiche sugli arresti anomali insieme al codice con la finestra Approfondimenti sulla qualità dell'app in Android Studio (disponibile a partire da con Anguilla elettrica 2022.1.1).