Erste Schritte mit Firebase Crashlytics


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

Für die Einrichtung von Crashlytics benötigen Sie sowohl ein Befehlszeilentool als auch Ihre IDE. Um die Einrichtung abzuschließen, müssen Sie das Auslösen einer Testausnahme erzwingen, um Ihre ersten Absturzbericht an Firebase gesendet.

Hinweis

  1. Falls noch nicht geschehen, Konfigurieren und initialisieren Sie Firebase in Ihrem Flutter. Projekt arbeiten.

  2. Empfohlen: Damit Sie Navigationspfadlogs um Nutzeraktionen zu verstehen, die zu einem Absturz, nicht schwerwiegenden oder ANR-Ereignis geführt haben, Sie müssen Google Analytics in Ihrem Firebase-Projekt aktivieren.

    • Wenn Google Analytics in Ihrem vorhandenen 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 des Projekterstellungsvorgangs.

    Beachten Sie, dass Navigationspfadlogs für alle Android- und Apple-Plattformen verfügbar sind. unterstützt von Crashlytics (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.

    Um die Vorteile Navigationspfade Fügen Sie Ihrer App auch das Flutter-Plug-in für Google Analytics hinzu. Achten Sie darauf, dass Google Analytics ist aktiviert 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
    

    Durch Ausführen dieses Befehls wird die Firebase-Konfiguration Ihrer Flutter-App auf dem neuesten Stand und für Android wird der erforderliche Crashlytics-Gradle-Code hinzugefügt. das Plug-in für Ihre Anwendung.

  3. Erstellen Sie danach das Flutter-Projekt neu:

    flutter run
    
  4. (Optional) Wenn Ihr Flutter-Projekt das Flag --split-debug-info verwendet (und optional auch das Flag --obfuscate) hinzufügen, sind weitere Schritte erforderlich, um lesbare Stacktraces für Ihre Apps anzuzeigen.

    • Apple-Plattformen: Achten Sie darauf, dass in Ihrem Projekt die empfohlene Versionskonfiguration verwendet wird (Flutter 3.12.0 oder höher und Crashlytics Flutter-Plug-in 3.3.4 oder 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 oder höher), um Flutter-Debugsymbole hochzuladen. Du musst die Symbole zum Debuggen vor dem Upload hochladen. einen Absturz von einem verschleierten Code-Build 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 Ihre 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 automatisch alle Fehler abfangen, die im Flutter- durch Überschreiben von FlutterError.onError durch 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());
}

Um asynchrone Fehler zu erkennen, die nicht vom Flutter-Framework verarbeitet 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 die Behandlung anderer Fehlertypen finden Sie unter Absturzberichte anpassen.

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

Wenn Sie die Einrichtung von Crashlytics abschließen und erste Daten im Crashlytics-Dashboard der Firebase-Konsole sehen möchten, 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) in den der obersten Ebene Zone hinzugefügt haben, können Sie den folgenden Code verwenden, um Ihrer App eine Schaltfläche hinzuzufügen bei dem eine Testausnahme ausgelöst wird:

    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 Auftreten der 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 die Schaltfläche zum Testen der Ausnahme, die Sie mithilfe der Code oben.

  4. Gehen Sie zur Crashlytics-Dashboard der Firebase-Konsole, um den Testabsturz zu sehen.

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


Das war's auch schon. Crashlytics überwacht jetzt Ihre App auf Abstürze und unter Android auf nicht schwerwiegende Fehler und ANRs. Im Dashboard Crashlytics finden Sie alle Ihre Berichte und Statistiken.

Nächste Schritte

  • Absturzbericht einrichten durch Hinzufügen von Opt-in-Berichten, Protokollen, Schlüsseln und Tracking zusätzlicher nicht schwerwiegender Fehler.

  • Google Play einbinden, damit Sie die Absturzberichte Ihrer Android-App direkt im Crashlytics-Dashboard nach Google Play-Track filtern können. So können Sie sich besser auf Ihr Dashboard zu bestimmten Builds.

  • Im Fenster App Quality Insights in Android Studio können Sie Stack-Traces und Absturzstatistiken neben Ihrem Code ansehen (verfügbar ab Electric Eel 2022.1.1).