Im Crashlytics-Dashboard sind lesbare Absturzberichte verfügbar.


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:

  1. Suchen Sie die Xcode-Arbeitsbereichsdatei im iOS-Verzeichnis Ihres Projekts (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace) und öffnen Sie sie.

  2. 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.