Erste Schritte mit Firebase Crashlytics


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

Für die Einrichtung von Crashlytics müssen Sie sowohl ein Befehlszeilentool als auch Ihre IDE verwenden. Um die Einrichtung abzuschließen, müssen Sie einen Testfehler erzwingen, damit Ihr erster Absturzbericht an Firebase gesendet wird.

Hinweis

  1. Konfigurieren und initialisieren Sie Firebase in Ihrem Flutter-Projekt, falls noch nicht geschehen.

  2. Empfohlen: Wenn Sie automatisch Navigationspfadlogs erhalten möchten, um Nutzeraktionen nachzuvollziehen, die zu einem Absturz‑, nicht schwerwiegenden oder ANR-Ereignis geführt haben, müssen Sie Google Analytics in Ihrem Firebase-Projekt aktivieren.

    • Wenn Google Analytics für Ihr vorhandenes Firebase-Projekt nicht aktiviert ist, können Sie Google Analytics auf dem Tab Integrationen unter  > Projekteinstellungen in der Firebase Console aktivieren.

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

    Hinweis: Breadcrumb-Logs sind für alle von Crashlytics unterstützten Android- und Apple-Plattformen (außer watchOS) verfügbar.

Schritt 1: Crashlytics zu Ihrem Flutter-Projekt hinzufügen

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

    Wenn Sie Breadcrumb-Logs verwenden möchten, fügen Sie Ihrer App auch das Flutter-Plug-in für Google Analytics hinzu. Achten Sie darauf, 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
    

    Wenn Sie diesen Befehl ausführen, wird dafür gesorgt, dass die Firebase-Konfiguration Ihrer Flutter-App auf dem neuesten Stand ist. Außerdem wird für Android das erforderliche Crashlytics-Gradle-Plug-in zu Ihrer App hinzugefügt.

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

    flutter run
    
  4. (Optional) Wenn in Ihrem Flutter-Projekt das Flag --split-debug-info (und optional auch das Flag --obfuscate) verwendet wird, sind zusätzliche Schritte erforderlich, um lesbare Stacktraces für Ihre Apps zu generieren.

    • Apple-Plattformen:Achten Sie darauf, dass in Ihrem Projekt die empfohlene Versionskonfiguration (Flutter 3.12.0 und höher sowie Crashlytics-Flutter-Plug-in 3.3.4 und höher) verwendet wird, damit Flutter-Symbole (dSYM-Dateien) automatisch generiert und in Crashlytics hochgeladen werden können.

    • Android:Verwenden Sie die Firebase-Befehlszeile (Version 11.9.0 und höher), um Flutter-Debug-Symbole hochzuladen. Sie müssen die Debugging-Symbole vor dem Melden eines Absturzes aus einem Build mit verschleiertem Code hochladen.

      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 für eine Firebase-Android-App-ID: 1:567383003300:android:17104a2ced0c9b9b

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

Schritt 2: Absturz-Handler konfigurieren

Sie können alle Fehler, die im Flutter-Framework ausgegeben 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());
}

Verwenden Sie PlatformDispatcher.instance.onError, um asynchrone Fehler abzufangen, die nicht vom Flutter-Framework behandelt werden:

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 die Behandlung anderer Fehlertypen finden Sie unter Absturzberichte anpassen.

Schritt 3: Testabsturz erzwingen, um die Einrichtung abzuschließen

Damit Sie die Einrichtung von Crashlytics abschließen und erste Daten im Crashlytics-Dashboard der Firebase Console sehen können, müssen Sie erzwingen, dass eine Testausnahme ausgelöst wird.

  1. Fügen Sie Ihrer App Code hinzu, mit dem Sie erzwingen können, dass eine Testausnahme ausgelöst wird.

    Wenn Sie einen Fehler-Handler hinzugefügt haben, der FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) für die Zone auf oberster Ebene aufruft, können Sie mit dem folgenden Code Ihrer App eine Schaltfläche hinzufügen, die beim Drücken eine Testausnahme auslöst:

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

  3. Erzwingen Sie, dass die Testausnahme ausgelöst wird, um den ersten Bericht Ihrer App zu senden:

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

    2. Tippen Sie in Ihrer App auf die Schaltfläche für Testausnahmen, die Sie mit dem oben stehenden Code hinzugefügt haben.

  4. Rufen Sie das Crashlytics-Dashboard der Firebase-Konsole auf, um den Testabsturz zu sehen.

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


Das war's schon. Crashlytics überwacht Ihre App jetzt auf Abstürze und auf Android auf nicht schwerwiegende Fehler und ANRs. Im Crashlytics-Dashboard können Sie alle Ihre Berichte und Statistiken ansehen und analysieren.

Nächste Schritte