In dieser Kurzanleitung wird beschrieben, wie Sie Firebase Crashlytics in Ihrer App mit dem Crashlytics-Flutter-Plug-in einrichten, damit Sie umfassende Absturzberichte in der Firebase-Konsole erhalten.
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 der erste Absturzbericht an Firebase gesendet wird.
Hinweis
Konfigurieren und initialisieren Sie Firebase in Ihrem Flutter-Projekt, falls noch nicht geschehen.
Empfohlen: Wenn Sie automatisch Navigationspfadlogs erhalten möchten, um Nutzeraktionen zu verstehen, die zu einem Absturz, einem nicht schwerwiegenden Ereignis oder einem ANR-Ereignis geführt haben, müssen Sie 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
in der > ProjekteinstellungenFirebase Console aktivieren. Wenn Sie ein neues Firebase-Projekt erstellen, aktivieren Sie Google Analytics während des Projekterstellungsworkflows.
Breadcrumb-Logs sind für alle von Crashlytics unterstützten Android- und Apple-Plattformen verfügbar (außer watchOS).
Schritt 1: Crashlytics zu Ihrem Flutter-Projekt hinzufügen
Führen Sie im Stammverzeichnis Ihres Flutter-Projekts den folgenden Befehl aus, um das Flutter-Plug-in für Crashlytics zu installieren.
Wenn Sie Brotkrummenprotokolle verwenden möchten, fügen Sie Ihrer App auch das Flutter-Plug-in für Google Analytics hinzu. Google Analytics muss in Ihrem Firebase-Projekt aktiviert sein.
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
Führen Sie im Stammverzeichnis Ihres Flutter-Projekts den folgenden Befehl aus:
flutterfire configure
Wenn Sie diesen Befehl ausführen, wird die Firebase-Konfiguration Ihrer Flutter-App auf den neuesten Stand gebracht und Ihrer Android-App wird das erforderliche Crashlytics-Gradle-Plug-in hinzugefügt.
Erstellen Sie anschließend Ihr Flutter-Projekt neu:
flutter run
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 Stack-Traces 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. Sie müssen die Debugsymbole 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--split-debug-info
-Flag übergeben
Schritt 2: Absturz-Handler konfigurieren
Sie können alle im Flutter-Framework geworfenen Fehler automatisch abfangen, indem Sie FlutterError.onError
durch 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 zu erfassen, 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
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.
Fügen Sie Ihrer App Code hinzu, mit dem Sie eine Testausnahme erzwingen können.
Wenn Sie einen Fehlerhandler hinzugefügt haben, der
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
auf der obersten EbeneZone
aufruft, können Sie Ihrer App mit dem folgenden Code eine Schaltfläche hinzufügen, die beim Drücken eine Testausnahme auslöst:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
Erstellen Sie Ihre App und führen Sie sie aus.
Erzwingen Sie das Auftreten der Testausnahme, um den ersten Bericht Ihrer App zu senden:
Öffnen Sie Ihre App auf Ihrem Testgerät oder Emulator.
Drücken Sie in Ihrer App die Schaltfläche zum Testen von Ausnahmen, die Sie mit dem Code oben hinzugefügt haben.
Rufen Sie das Crashlytics-Dashboard der Firebase-Konsole auf, 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
Sie können die Einrichtung von Absturzberichten anpassen, indem Sie optionale Berichte, Protokolle, Schlüssel und das Tracking zusätzlicher nicht kritischer Fehler hinzufügen.
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 Ihr Dashboard besser auf bestimmte Builds ausrichten.
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).