Beginnen Sie mit Firebase Crashlytics

In dieser Schnellstartanleitung wird beschrieben, wie Sie Firebase Crashlytics in Ihrer App mit dem Crashlytics Flutter-Plugin einrichten, damit Sie umfassende Absturzberichte in der Firebase-Konsole erhalten.

Zum Einrichten von Crashlytics müssen Sie sowohl ein Befehlszeilentool als auch Ihre IDE verwenden. Um die Einrichtung abzuschließen, müssen Sie das Auslösen einer Testausnahme erzwingen, um Ihren ersten Absturzbericht an Firebase zu senden.

Bevor Sie beginnen

  1. Falls noch nicht geschehen, konfigurieren und initialisieren Sie Firebase in Ihrem Flutter-Projekt.

  2. Empfohlen : Um automatisch Breadcrumb-Protokolle zu erhalten, um Benutzeraktionen zu verstehen, die zu einem Absturz, einem nicht schwerwiegenden Ereignis oder einem ANR-Ereignis führen, müssen Sie Google Analytics in Ihrem Firebase-Projekt aktivieren.

    • Wenn in Ihrem bestehenden Firebase-Projekt Google Analytics nicht aktiviert ist, können Sie Google Analytics über die Registerkarte „Integrationen“ Ihres Projekts aktivieren > Projekteinstellungen in der Firebase-Konsole.

    • Wenn Sie ein neues Firebase-Projekt erstellen, aktivieren Sie Google Analytics während des Projekterstellungsworkflows.

    Beachten Sie, dass Breadcrumb-Protokolle für alle von Crashlytics unterstützten Android- und Apple-Plattformen verfügbar sind (außer watchOS).

Schritt 1 : Fügen Sie Crashlytics zu Ihrem Flutter-Projekt hinzu

  1. Führen Sie im Stammverzeichnis Ihres Flutter-Projekts den folgenden Befehl aus, um das Flutter-Plugin für Crashlytics zu installieren.

    Um die Vorteile von Breadcrumb-Protokollen zu nutzen, fügen Sie Ihrer App auch das Flutter-Plugin für Google Analytics hinzu. Stellen Sie sicher, dass Google Analytics in Ihrem Firebase-Projekt aktiviert ist .

    flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
    
  2. Führen Sie im Stammverzeichnis Ihres Flutter-Projekts den folgenden Befehl aus:

    flutterfire configure
    

    Durch Ausführen dieses Befehls wird sichergestellt, dass die Firebase-Konfiguration Ihrer Flutter-App auf dem neuesten Stand ist, und für Android wird Ihrer App das erforderliche Crashlytics Gradle-Plugin hinzugefügt.

  3. Wenn Sie fertig sind, erstellen Sie Ihr Flutter-Projekt neu:

    flutter run
    
  4. (Optional) Wenn Ihr Flutter-Projekt das Flag --split-debug-info (und optional auch das Flag --obfuscate ) verwendet, sind zusätzliche Schritte erforderlich, um lesbare Stack-Traces für Ihre Apps anzuzeigen.

    • Apple-Plattformen: Stellen Sie sicher, dass Ihr Projekt die empfohlene Versionskonfiguration (Flutter 3.12.0+ und Crashlytics Flutter-Plugin 3.3.4+) verwendet, damit Ihr Projekt automatisch Flutter-Symbole (dSYM-Dateien) generieren und auf Crashlytics hochladen kann.

    • Android: Verwenden Sie die Firebase-CLI (v.11.9.0+), um Flutter-Debug-Symbole hochzuladen. Sie müssen die Debug-Symbole hochladen , bevor Sie einen Absturz aufgrund eines verschleierten Code-Builds melden.

      Führen Sie im Stammverzeichnis Ihres Flutter-Projekts den folgenden Befehl aus:

      firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
      • FIREBASE_APP_ID : Ihre Firebase-Android-App-ID (nicht Ihr Paketname)
        Beispiel-ID einer Firebase-Android-App: 1:567383003300:android:17104a2ced0c9b9b

      • PATH/TO /symbols : Das gleiche Verzeichnis, das Sie beim Erstellen der Anwendung an das Flag --split-debug-info übergeben

Schritt 2 : Crash-Handler konfigurieren

Sie können alle Fehler, die innerhalb des Flutter-Frameworks ausgelöst werden, automatisch abfangen, indem Sie FlutterError.onError mit FirebaseCrashlytics.instance.recordFlutterFatalError überschreiben:

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());
}

Um asynchrone Fehler abzufangen, die nicht vom Flutter-Framework behandelt werden, verwenden Sie 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());

}

Beispiele für den Umgang mit anderen Fehlertypen finden Sie unter Absturzberichte anpassen .

Schritt 3 : Erzwingen Sie einen Testabsturz, um die Einrichtung abzuschließen

Um die Einrichtung von Crashlytics abzuschließen und erste Daten im Crashlytics-Dashboard der Firebase-Konsole anzuzeigen, müssen Sie das Auslösen einer Testausnahme erzwingen.

  1. Fügen Sie Ihrer App Code hinzu, mit dem Sie das Auslösen einer Testausnahme erzwingen können.

    Wenn Sie der obersten Zone einen Fehlerhandler hinzugefügt haben, der FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) aufruft, können Sie mit dem folgenden Code Ihrer App eine Schaltfläche hinzufügen, die beim Drücken ausgelöst wird eine Testausnahme:

    TextButton(
        onPressed: () => throw Exception(),
        child: const Text("Throw Test Exception"),
    ),
    
  2. Erstellen Sie Ihre App und führen Sie sie aus.

  3. Erzwingen Sie das Auslösen der Testausnahme, um den ersten Bericht Ihrer App zu senden:

    1. Öffnen Sie Ihre App von Ihrem Testgerät oder Emulator.

    2. Klicken Sie in Ihrer App auf die Schaltfläche „Ausnahme testen“, die Sie mit dem obigen Code hinzugefügt haben.

  4. Gehen Sie zum Crashlytics-Dashboard der Firebase-Konsole, um Ihren Testabsturz zu sehen.

    Wenn Sie die Konsole aktualisiert haben und der Testabsturz nach fünf Minuten immer noch nicht auftritt, aktivieren Sie die Debug-Protokollierung , um zu sehen, ob Ihre App Absturzberichte sendet.


Und das ist es! Crashlytics überwacht Ihre App jetzt auf Abstürze und auf Android auf nicht schwerwiegende Fehler und ANRs. Besuchen Sie das Crashlytics-Dashboard , um alle Ihre Berichte und Statistiken anzuzeigen und zu untersuchen.

Nächste Schritte