Lesbare Absturzberichte im Crashlytics-Dashboard abrufen (Flutter)

Plattform auswählen : iOS+ Android Flutter Unity


Standardmäßig instrumentiert Firebase Crashlytics Ihr Flutter Projekt automatisch, um die erforderlichen Symboldateien hochzuladen, damit Absturzberichte deobfuskiert und für Menschen lesbar sind.

Leider gibt es Fälle, in denen das Projekt nicht vollständig konfiguriert werden kann. In dieser Anleitung wird beschrieben, was die Automatisierung bewirkt, und es werden erste Schritte zur Fehlerbehebung bei der Projekteinrichtung erläutert.

Apple-Plattformen

Konfiguration für das Hochladen von dSYM-Dateien prüfen

Wenn Sie das Crashlytics Flutter-Plug‑in hinzufügen und den flutterfire configure Befehl ausführen, wird versucht, dem Xcode-Arbeitsbereich Ihres Projekts ein Ausführungsskript hinzuzufügen, das die erforderlichen dSYM-Symboldateien sucht und in Crashlytics hochlädt. Ohne diese Dateien wird im Crashlytics-Dashboard eine Warnung „Fehlende dSYM-Datei“ angezeigt und Ausnahmen werden vom Backend zurückgehalten, bis die fehlenden Dateien hochgeladen wurden.Crashlytics

Wenn dieses Problem auftritt, prüfen Sie zuerst, ob das Ausführungsskript installiert ist:

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

  2. Prüfen Sie, ob den Build-Phasen des Runner-Ziels ein Ausführungsskript mit dem Titel [firebase_crashlytics] Crashlytics Upload Symbols hinzugefügt wurde.

    Im entsprechenden Abschnitt unten erfahren Sie, ob das Ausführungsskript nicht vorhanden ist oder das Ausführungsskript vorhanden ist.

Versionskonfiguration für Flutter und Crashlytics (wenn 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 Stacktraces 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 versucht, die erforderlichen Abhängigkeiten zu den Gradle-Build-Dateien Ihres Projekts hinzuzufügen. Ohne diese Abhängigkeiten können Absturzberichte in der Firebase Console obfuskiert sein, wenn die Obfuskierung aktiviert ist.

Achten Sie darauf, dass die folgenden Zeilen in der build.gradle-Datei auf Projektebene und in der build.gradle-Datei auf App-Ebene vorhanden sind:

  • Prüfen Sie in der Build-Datei auf Projektebene (android/build.gradle) die folgende Zeile:

    dependencies {
    // ... other dependencies
    
    classpath 'com.google.gms:google-services:4.3.5'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
  • Prüfen Sie in der Build-Datei auf App-Ebene (android/app/build.gradle) die folgende 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, ob Sie die CLI verwenden, um Flutter-Symbole hochzuladen (wenn 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 Stacktraces für Ihre App anzuzeigen.

Verwenden Sie die Firebase CLI (Version 11.9.0 oder höher), um Flutter-Debug Symbole hochzuladen. Sie müssen die Debug-Symbole vor dem Melden eines Absturzes aus einem obfuskierten Code-Build 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 bestehen, lesen Sie die Android-spezifische Anleitung zur Fehlerbehebung bei obfuskierten Berichten.