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
Falls noch nicht geschehen, konfigurieren und initialisieren Sie Firebase in Ihrem Flutter-Projekt.
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
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
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
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.
Wenn Sie fertig sind, erstellen Sie Ihr Flutter-Projekt neu:
flutter run
(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
Hier sind zwei Möglichkeiten, Ihre Firebase-App-ID zu finden:
In Ihrer Datei
google-services.json
ist Ihre App-ID der Wertmobilesdk_app_id
. oderGehen Sie in der Firebase-Konsole zu Ihren Projekteinstellungen . Scrollen Sie nach unten zur Karte „Ihre Apps“ und klicken Sie dann auf die gewünschte Firebase-App, um deren App-ID zu finden.
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.
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, derFirebaseCrashlytics.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"), ),
Erstellen Sie Ihre App und führen Sie sie aus.
Erzwingen Sie das Auslösen der Testausnahme, um den ersten Bericht Ihrer App zu senden:
Öffnen Sie Ihre App von Ihrem Testgerät oder Emulator.
Klicken Sie in Ihrer App auf die Schaltfläche „Ausnahme testen“, die Sie mit dem obigen Code hinzugefügt haben.
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
Passen Sie die Einrichtung Ihres Absturzberichts an , indem Sie Opt-in-Berichte, Protokolle, Schlüssel und die Verfolgung zusätzlicher, nicht schwerwiegender Fehler hinzufügen.
Integrieren Sie Google Play, sodass Sie die Absturzberichte Ihrer Android-App direkt im Crashlytics-Dashboard nach Google Play-Track filtern können. Dadurch können Sie Ihr Dashboard besser auf bestimmte Builds konzentrieren.
Zeigen Sie Stack-Traces und Absturzstatistiken neben Ihrem Code im Fenster „App Quality Insights“ in Android Studio an (verfügbar ab Electric Eel 2022.1.1).