Inizia con Firebase Crashlytics

Questa guida di avvio rapido descrive come configurare Firebase Crashlytics nella tua app con il plug-in Crashlytics Flutter in modo da poter ottenere report completi sugli arresti anomali nella console Firebase.

La configurazione di Crashlytics implica l'utilizzo sia di uno strumento da riga di comando che del tuo IDE. Per completare la configurazione, dovrai forzare la generazione di un'eccezione di test per inviare il primo rapporto sugli arresti anomali a Firebase.

Prima di iniziare

  1. Se non l'hai già fatto, configura e inizializza Firebase nel tuo progetto Flutter.

  2. Consigliato : per ottenere automaticamente i log breadcrumb per comprendere le azioni degli utenti che portano a un arresto anomalo, un evento non fatale o ANR, devi abilitare Google Analytics nel tuo progetto Firebase.

    • Se il tuo progetto Firebase esistente non ha Google Analytics abilitato, puoi abilitare Google Analytics dalla scheda Integrazioni del tuo > Impostazioni progetto nella console Firebase.

    • Se stai creando 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 (eccetto watchOS).

Passaggio 1 : aggiungi Crashlytics al tuo progetto Flutter

  1. Dalla radice del tuo progetto Flutter, esegui il comando seguente per installare il plug-in Flutter per Crashlytics.

    Per sfruttare i 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
    
  2. Dalla directory root del tuo progetto Flutter, esegui il comando seguente:

    flutterfire configure
    

    L'esecuzione di questo comando garantisce che la configurazione Firebase dell'app Flutter sia aggiornata e, per Android, aggiunge il plug-in Crashlytics Gradle richiesto alla tua app.

  3. Una volta completato, ricostruisci il tuo progetto Flutter:

    flutter run
    
  4. (Facoltativo) Se il tuo progetto Flutter utilizza il flag --split-debug-info (e, facoltativamente, anche il flag --obfuscate ), sono necessari passaggi aggiuntivi per mostrare analisi dello stack leggibili per le tue app.

    • Piattaforme Apple: assicurati che il tuo progetto utilizzi la configurazione della versione consigliata (Flutter 3.12.0+ e plugin Crashlytics Flutter 3.3.4+) in modo che il tuo progetto possa generare e caricare automaticamente simboli Flutter (file dSYM) su Crashlytics.

    • Android: utilizza la CLI Firebase (v.11.9.0+) per caricare i simboli di debug Flutter. È necessario caricare i simboli di debug prima di segnalare un arresto anomalo del sistema derivante da una build di codice offuscato.

      Dalla directory root del tuo progetto Flutter, esegui il comando seguente:

      firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
      • FIREBASE_APP_ID : ID dell'app Android Firebase (non il nome del pacchetto)
        Esempio di ID app Android Firebase: 1:567383003300:android:17104a2ced0c9b9b

      • PATH/TO /symbols : la stessa directory che passi al flag --split-debug-info durante la creazione dell'applicazione

Passaggio 2 : configurare i gestori degli arresti anomali

Puoi rilevare automaticamente tutti gli errori generati all'interno del framework Flutter sovrascrivendo 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 errori asincroni che non vengono 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 rapporti 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 di Crashlytics della console Firebase, devi forzare la generazione di un'eccezione di test.

  1. Aggiungi codice alla tua app 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 livello principale Zone , puoi utilizzare il codice seguente per aggiungere un pulsante alla tua app che, quando premuto, genera un'eccezione di prova:

    TextButton(
        onPressed: () => throw Exception(),
        child: const Text("Throw Test Exception"),
    ),
    
  2. Crea ed esegui la tua app.

  3. Forza la generazione dell'eccezione test per inviare il primo report della tua app:

    1. Apri la tua app dal dispositivo di prova o dall'emulatore.

    2. Nella tua app, premi il pulsante dell'eccezione di test che hai aggiunto utilizzando il codice riportato sopra.

  4. Vai alla dashboard Crashlytics della console Firebase per vedere l'arresto anomalo del test.

    Se hai aggiornato la console e non vedi ancora l'arresto anomalo del test dopo cinque minuti, abilita la registrazione del debug per vedere se la tua app sta inviando rapporti sugli arresti anomali.


E questo è tutto! Crashlytics ora monitora la tua app per arresti anomali e, su Android, errori non fatali e ANR. Visita la dashboard di Crashlytics per visualizzare ed esaminare tutti i report e le statistiche.

Prossimi passi