| Plattform auswählen: | iOS+ Android Android NDK Flutter Unity |
In diesem Leitfaden wird beschrieben, wie Sie Firebase Crashlytics in Ihrer Flutter-App verwenden.
Nachdem Sie das Crashlytics-Flutter-Plug-in in Ihrer App eingerichtet haben, können Sie in der Firebase-Konsole umfassende Absturzberichte abrufen.
Für die Einrichtung von Crashlytics sind sowohl ein Befehlszeilentool als auch Ihre IDE erforderlich. Um die Einrichtung abzuschließen, müssen Sie das Auslösen einer Testausnahme erzwingen, damit der erste Absturzbericht an Firebase gesendet wird.
Hinweis
Falls noch nicht geschehen, konfigurieren und initialisieren Sie Firebase in Ihrem Flutter-Projekt.
Empfohlen: Wenn Sie automatisch Navigationspfad-Logs erhalten möchten, um die Nutzeraktionen zu verstehen, die zu einem Absturz, einem nicht schwerwiegenden Fehler oder einem 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 Projekterstellungsworkflows.
Wenn Sie ein vorhandenes Firebase-Projekt verwenden, für das Google Analytics nicht aktiviert ist, können Sie es in der Firebase Console auf der Seite
Einstellungen > Integrationen aktivieren.
Navigationspfad-Logs sind für alle Android- und Apple-Plattformen verfügbar, die von Crashlytics unterstützt werden (außer watchOS).
Schritt 1: Crashlytics zum 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 Navigationspfad-Logs nutzen 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_analyticsFühren Sie im Stammverzeichnis Ihres Flutter-Projekts den folgenden Befehl aus:
flutterfire configureDurch Ausführen dieses Befehls wird sichergestellt, dass die Firebase-Konfiguration Ihrer Flutter-App auf dem neuesten Stand ist. Außerdem wird Ihrer App für Android das erforderliche Gradle-Plug-in Crashlytics 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 Stacktraces für Ihre Apps anzuzeigen.Apple-Plattformen:Achten Sie darauf, dass Ihr Projekt die empfohlene Versionskonfiguration (Flutter 3.12.0 oder höher und Crashlytics Flutter-Plug-in 3.3.4 oder höher) verwendet, damit Flutter-Symbole (dSYM-Dateien) automatisch generiert und in Crashlytics hochgeladen werden können.
Android:Verwenden Sie die Firebase-Befehlszeile (v.11.9.0+), um Flutter-Debugging-Symbole hochzuladen. Sie müssen die Debug-Symbole hochladen, bevor Sie einen Absturz aus einem Build mit verschleiertem Code 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 der Paketname)
Beispiel für eine Firebase-Android-App-ID:1:567383003300:android:17104a2ced0c9b9bPATH/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 auftreten, 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 Dashboard Crashlytics der Firebase Console zu sehen, 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 einen Fehler-Handler hinzugefügt haben, der
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)auf der obersten EbeneZoneaufruft, 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"), ),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 die App auf Ihrem Testgerät oder Emulator.
Drücken Sie in Ihrer App auf die Schaltfläche für die Testausnahme, die Sie mit dem obigen Code hinzugefügt haben.
Rufen Sie in der Firebase-Konsole das Dashboard DevOps & Engagement > Crashlytics auf, um nach dem Testabsturzbericht zu suchen.
Wenn Sie die Konsole aktualisiert haben und der Testabsturz nach fünf Minuten immer noch nicht angezeigt wird, aktivieren Sie das Debugging-Logging, um zu sehen, ob Ihre App Absturzberichte sendet.
Geschafft! Crashlytics überwacht Ihre App jetzt auf Abstürze und unter Android auf nicht schwerwiegende Fehler und ANRs. Rufen Sie das Crashlytics-Dashboard auf, um alle Berichte und Statistiken anzusehen und zu untersuchen.
Nächste Schritte
Passen Sie die Einrichtung von Absturzberichten an, indem Sie Opt-in-Berichte, Logs, Schlüssel und das Tracking zusätzlicher nicht schwerwiegender Fehler hinzufügen.
Integrieren Sie Google Play, um die Absturzberichte Ihrer Android-App direkt im Crashlytics-Dashboard nach Google Play-Track zu filtern. So können Sie Ihr Dashboard besser auf bestimmte Builds ausrichten.
Stacktraces und Absturzstatistiken neben dem Code ansehen: Das geht im Fenster App Quality Insights in Android Studio (verfügbar ab Electric Eel 2022.1.1).
Daten nach BigQuery oder Cloud Logging exportieren, um erweiterte Analysen und Funktionen zu nutzen, z. B. Daten abfragen, benutzerdefinierte Dashboards erstellen und benutzerdefinierte Benachrichtigungen einrichten.