Questa guida rapida descrive come configurare Firebase Crashlytics nella tua app con il plug-in Flutter Crashlytics in modo da poter ottenere report sugli arresti anomali completi nella console Firebase.
La configurazione di Crashlytics prevede l'utilizzo sia di uno strumento a riga di comando sia dell'IDE. Per completare la configurazione, devi forzare la generazione di un'eccezione di test per inviare il primo report sugli arresti anomali a Firebase.
Prima di iniziare
- Se non l'hai ancora fatto, configura e inizializza Firebase nel tuo progetto Flutter. 
- Consigliato: per ottenere automaticamente i log dei breadcrumb per comprendere le azioni dell'utente che hanno portato a un evento di arresto anomalo, non irreversibile o ANR, devi attivare Google Analytics nel tuo progetto Firebase. - Se il tuo progetto Firebase esistente non ha Google Analytics abilitato, puoi abilitare Google Analytics dalla scheda Integrazioni di - > Impostazioni progetto nella console Firebase.
- Se crei un nuovo progetto Firebase, abilita Google Analytics durante il flusso di lavoro di creazione del progetto. 
 - Tieni presente che i log breadcrumb sono disponibili per tutte le piattaforme Android e Apple supportate da Crashlytics (tranne watchOS). 
Passaggio 1: aggiungi Crashlytics al tuo progetto Flutter
- Dalla radice del progetto Flutter, esegui il seguente comando per installare il plug-in Flutter per Crashlytics. - Per usufruire dei log breadcrumb, aggiungi anche il plug-in Flutter per Google Analytics alla tua app. Assicurati che Google Analytics sia abilitato nel tuo progetto Firebase. - flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
- Dalla directory principale del progetto Flutter, esegui questo 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 Gradle Crashlytics richiesto alla tua app. 
- Al termine, ricompila il progetto Flutter: - flutter run
- (Facoltativo) 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 le tue app.- Piattaforme Apple:assicurati che il tuo progetto utilizzi la configurazione della versione consigliata (Flutter 3.12.0+ e plug-in Flutter Crashlytics 3.3.4+) in modo che possa generare e caricare automaticamente i simboli Flutter (file dSYM) su Crashlytics. 
- Android: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-infodurante la creazione dell'applicazione
 
 
Passaggio 2: configura i gestori di arresti anomali
Puoi rilevare automaticamente tutti gli errori generati all'interno del framework Flutter eseguendo l'override di 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 rilevare gli errori asincroni non gestiti dal framework Flutter, utilizza
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 Personalizzare i report sugli arresti anomali.
Passaggio 3: forza un arresto anomalo del test per completare la configurazione
Per completare la configurazione di Crashlytics e visualizzare i dati iniziali nella dashboard Crashlytics della console Firebase, devi forzare la generazione di un'eccezione di test.
- Aggiungi alla tua app un codice che puoi utilizzare per forzare la generazione di un'eccezione di test. - Se hai aggiunto un gestore di errori che chiama - FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)al- Zonedi primo livello, puoi utilizzare il seguente codice per aggiungere un pulsante alla tua app che, quando viene 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 il primo report della tua app: - 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 dashboard Crashlytics della console Firebase per visualizzare l'arresto anomalo del test. - Se hai aggiornato la console e non vedi ancora l'arresto anomalo del test dopo cinque minuti, attiva la registrazione di debug per verificare se la tua app invia report sugli arresti anomali. 
E questo è tutto. Crashlytics ora monitora la tua app per rilevare arresti anomali e, su
Android, errori non irreversibili e ANR. Visita la
dashboard Crashlytics 
per visualizzare e analizzare tutti i report e le statistiche.
Passaggi successivi
- Personalizza la configurazione dei report sugli arresti anomali aggiungendo report con consenso esplicito, log, chiavi e monitoraggio di errori non fatali aggiuntivi. 
- Esegui l'integrazione con Google Play per poter filtrare i report sugli arresti anomali della tua app per Android in base alla traccia Google Play direttamente nella dashboard Crashlytics. In questo modo puoi concentrare meglio la dashboard su build specifiche. 
- Visualizza le analisi dello stack e le statistiche sugli arresti anomali insieme al tuo codice con la finestra Insight sulla qualità delle app in Android Studio (disponibile a partire da Electric Eel 2022.1.1).