Standardmäßig instrumentiert Firebase Crashlytics Ihr Flutter-Projekt automatisch, um die erforderlichen Symboldateien hochzuladen, die dafür sorgen, dass Absturzberichte deobfusciert und für Menschen lesbar sind.
Leider kann es vorkommen, dass das Projekt nicht vollständig konfiguriert wird. In diesem Leitfaden wird beschrieben, was die Automatisierung bewirkt, und es werden erste Schritte zur Fehlerbehebung bei der Projekteinrichtung beschrieben.
Apple-Plattformen
Konfiguration für den Upload von dSYM-Dateien prüfen
Wenn Sie das Crashlytics-Flutter-Plug-in hinzufügen und den Befehl flutterfire configure
ausführen, wird versucht, dem Xcode-Arbeitsbereich Ihres Projekts ein Ausführungsskript hinzuzufügen, das die erforderlichen dSYM-Symboldateien findet und in Crashlytics hochlädt. Ohne diese Dateien wird im Crashlytics-Dashboard die Warnung „Fehlende dSYM-Datei“ angezeigt und Ausnahmen werden vom Backend zurückgehalten, bis die fehlenden Dateien hochgeladen wurden.
Wenn dieses Problem auftritt, prüfen Sie zuerst, ob das Run-Script installiert ist:
Suchen Sie die Xcode-Arbeitsbereichsdatei im iOS-Verzeichnis Ihres Projekts (
FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace
) und öffnen Sie sie.Prüfen Sie, ob der Build-Phasen des Runners ein Ausführungsskript mit dem Namen
[firebase_crashlytics] Crashlytics Upload Symbols
hinzugefügt wurde.Im entsprechenden Abschnitt unten erfahren Sie, ob das Script zum Ausführen nicht vorhanden oder vorhanden ist.
Prüfen Sie die Versionskonfiguration für Flutter und Crashlytics (falls das Flag --split-debug-info
verwendet wird)
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 App anzuzeigen.
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
Abhängigkeitskonfiguration prüfen
Mit dem Befehl flutterfire configure
werden die erforderlichen Abhängigkeiten den Gradle-Builddateien Ihres Projekts hinzugefügt. Ohne diese Abhängigkeiten werden Absturzberichte in der Firebase-Konsole möglicherweise verschleiert, wenn die Verschleierung aktiviert ist.
Achten Sie darauf, dass die folgenden Zeilen in der build.gradle
auf Projektebene und in der build.gradle
auf App-Ebene vorhanden sind:
Suchen Sie in der Build-Datei auf Projektebene (
android/build.gradle
) nach der folgenden Zeile:dependencies { // ... other dependencies classpath 'com.google.gms:google-services:4.3.5' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1' }
Suchen Sie in der Build-Datei auf App-Ebene (
android/app/build.gradle
) nach der folgenden Zeile:// ... other imports android { // ... your android config } dependencies { // ... your dependencies } // This section must appear at the bottom of the file apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.firebase.crashlytics'
Prüfen Sie, ob Sie die Befehlszeile zum Hochladen von Flutter-Symbolen verwenden (wenn Sie das Flag --split-debug-info
verwenden).
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 App anzuzeigen.
Verwenden Sie die Firebase CLI (Version 11.9.0 und 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
Wenn die Probleme weiterhin auftreten, lesen Sie den Android-spezifischen Leitfaden zur Fehlerbehebung bei verschleierten Berichten.