Erste Schritte mit Crashlytics für Flutter

Plattform auswählen : iOS+ Android Android NDK Flutter Unity


In dieser Anleitung wird beschrieben, wie Sie Firebase Crashlytics in Ihrer Flutter-App einrichten.

Nachdem Sie das Crashlytics Flutter-Plug-in in Ihrer App eingerichtet haben, können Sie umfassende Absturzberichte in der Firebase Console abrufen.

Für die Einrichtung von Crashlytics benötigen Sie sowohl ein Befehlszeilentool als auch Ihre IDE. Um die Einrichtung abzuschließen, müssen Sie eine Testausnahme 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 Fehler oder ANR-Ereignis geführt haben, müssen Sie Google Analytics in Ihrem Firebase-Projekt aktivieren.

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

    • Wenn Sie ein vorhandenes Firebase-Projekt verwenden, für das Google Analytics nicht aktiviert ist, können Sie es in den Einstellungen > Integrationen Seite der Firebase Konsole aktivieren.

    Hinweis: Navigationspfadlogs sind für alle Android- und Apple-Plattformen verfügbar, die von Crashlytics unterstützt werden (außer watchOS).

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 Navigationspfadlogs nutzen möchten, fügen Sie Ihrer App auch das Flutter-Plug-in für Google Analytics hinzu. Achten Sie darauf, dass Google Analytics aktiviert ist in Ihrem Firebase-Projekt.

    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
    

    Mit diesem Befehl wird sichergestellt, 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. Erstellen Sie nach Abschluss des Vorgangs 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 Stacktraces für Ihre Apps anzuzeigen.

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

    • Android: Verwenden Sie die Firebase CLI (Version 11.9.0 und höher), um Flutter-Debug-Symbole hochzuladen. Sie müssen die Debug-Symbole vor dem Melden eines Absturzes aus einem verschleierten Code-Build 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 --split-debug-info Flag übergeben

Schritt 2: Absturz-Handler konfigurieren

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

Verwenden Sie PlatformDispatcher.instance.onError, um asynchrone Fehler abzufangen, die nicht vom Flutter-Framework verarbeitet 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

Um die Einrichtung von Crashlytics abzuschließen und erste Daten im Crashlytics Dashboard der Firebase Console zu sehen, müssen Sie eine Testausnahme erzwingen.

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

    Wenn Sie einen Fehler-Handler hinzugefügt haben, der FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) für die oberste Ebene Zone aufruft, können Sie mit dem folgenden Code einen Button zu Ihrer App hinzufügen, der 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 die Testausnahme, um den ersten Bericht Ihrer App zu senden:

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

    2. Drücken Sie in Ihrer App auf den Button für die Testausnahme, den Sie mit dem obigen Code hinzugefügt haben.

  4. Rufen Sie in der Firebase Console das DevOps & Engagement > Crashlytics Dashboard auf und suchen Sie nach Ihrem Testabsturz bericht.

    Wenn Sie die Console aktualisiert haben und nach fünf Minuten immer noch keinen Testabsturz sehen , aktivieren Sie die Debug-Protokollierung , um zu prüfen, ob Ihre App Absturzberichte sendet.


Geschafft! Crashlytics überwacht jetzt Ihre App auf Abstürze und auf Android auch auf nicht schwerwiegende Fehler und ANRs. Auf dem Crashlytics Dashboard können Sie alle Berichte und Statistiken ansehen und untersuchen.

Nächste Schritte