Lesbare Absturzberichte im Crashlytics-Dashboard abrufen (Apple-Plattformen)

Plattform auswählen : iOS+ Android Flutter Unity


Standardmäßig verarbeitet Firebase Crashlytics automatisch Ihre Debug Symbol (dSYM)-Dateien, um offengelegte und für Menschen lesbare Absturzberichte für Sie bereitzustellen. Normalerweise konfigurieren Sie dieses Verhalten bei der ersten Einrichtung von Crashlytics in Ihrer App, insbesondere durch Hinzufügen eines Ausführungsskripts , das dSYM-Dateien während der Build-Phase Ihrer App automatisch hochlädt.

Leider gibt es einige Fälle, die dazu führen können, dass der automatische Upload von dSYM-Dateien fehlschlägt. In dieser Anleitung finden Sie einige Möglichkeiten zur Fehlerbehebung, wenn Crashlytics die dSYM-Dateien Ihrer App nicht finden kann.

Prüfen, ob Xcode dSYMs automatisch verarbeiten und die Dateien hochladen kann

Beim Einrichten von Crashlytics in Ihrer App haben Sie ein Ausführungsskript konfiguriert um dSYMs automatisch zu verarbeiten und die Dateien hochzuladen.

Prüfen Sie, ob Ihre Konfiguration für das Crashlytics Ausführungsskript den neuen Anforderungen entspricht, die mit Xcode 15 eingeführt wurden. Wenn Ihre Konfiguration nicht auf dem neuesten Stand ist, wird möglicherweise der folgende Fehler angezeigt:
error: Info.plist Error Unable to process Info.plist at path ....

Insbesondere in Xcode 15 und höher müssen Sie eine vollständigere Reihe von Dateispeicherorten angeben. Prüfen Sie für Ihr Crashlytics Ausführungsskript (firebase-ios-sdk/Crashlytics/run), ob die folgende Einrichtung vorhanden ist:

  1. Klicken Sie auf den Tab Build-Phasen und maximieren Sie dann den Bereich Ausführungsskript.

  2. Prüfen Sie im Bereich Eingabedateien, ob die Pfade zu den Speicherorten der folgenden Dateien vorhanden sind:

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
    Wenn Sie in den Build-Einstellungen Ihres Projekts ENABLE_USER_SCRIPT_SANDBOXING=YES und ENABLE_DEBUG_DYLIB=YES haben, geben Sie Folgendes an:
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib

Prüfen, ob Xcode dSYMs erstellt

In den meisten Fällen fehlen dSYM-Dateien, weil Xcode sie einfach nicht erstellt. Wenn ein Upload fehlschlägt, wird in der Firebase Console eine Warnung „Fehlende dSYM-Datei“ angezeigt.Crashlytics Wenn Sie diese Warnung erhalten, prüfen Sie zuerst, ob Xcode für jeden Build die richtige dSYM-Datei erstellt:

  1. Öffnen Sie Ihr Projekt in Xcode und wählen Sie dann die Projektdatei im Xcode-Navigator aus.

  2. Wählen Sie Ihr Haupt-Build-Ziel aus.

  3. Öffnen Sie den Tab Build-Einstellungen des Ziels und klicken Sie dann auf Alle.

  4. Suchen Sie nach debug information format.

  5. Legen Sie für alle Ihre Build-Typen Debug-Informationsformat auf DWARF mit dSYM-Datei fest.

  6. Erstellen Sie Ihre App noch einmal.

Ihre Absturzberichte sollten jetzt im Crashlytics Dashboard angezeigt werden. Wenn das Problem weiterhin besteht oder andere Fehler auftreten, suchen Sie Ihre dSYMs und laden Sie sie manuell in Crashlytics hoch.Crashlytics

dSYMs auf einem lokalen Computer suchen

Führen Sie den folgenden Befehl aus, um alle UUIDs Ihrer dSYMs auf Ihrem Computer anzuzeigen und nach der fehlenden dSYM-Datei zu suchen:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

Sobald Sie die dSYM-Datei gefunden haben, laden Sie sie manuell in Crashlytics hoch. Wenn der Befehl mdfind keine Ergebnisse zurückgibt, können Sie im Verzeichnis Products suchen, in dem sich Ihre .app-Datei befindet. Standardmäßig befindet sich das Verzeichnis Products unter Derived Data. Wenn Ihre App in der Produktion veröffentlicht wurde, können Sie auch im Verzeichnis .xcarchive auf dem Laufwerk nach der zugehörigen dSYM-Datei suchen:

  1. Öffnen Sie in Xcode das Fenster Organizer und wählen Sie dann Ihre App aus der Liste aus. Xcode zeigt eine Liste der Archive für Ihr Projekt an.

  2. Klicken Sie bei gedrückter Ctrl-Taste auf ein Archiv, um es im Finder aufzurufen. Klicken Sie noch einmal bei gedrückter Ctrl-Taste darauf und dann auf Paketinhalt zeigen.

  3. In .xcarchive befindet sich ein dSYMs-Verzeichnis, das dSYMs enthält, die im Rahmen des Archivierungsprozesses von Xcode generiert wurden.

dSYMs hochladen

Crashlytics unterstützt mehrere Möglichkeiten, Ihre dSYM-Dateien hochzuladen, entweder automatisch oder manuell.

(Empfohlen) dSYMs automatisch verarbeiten und die Dateien hochladen

Bei der ersten Einrichtung von Crashlytics haben Sie dieses automatische Uploadverhalten wahrscheinlich für Ihre App konfiguriert. Wenn automatische Uploads jedoch fehlschlagen, prüfen Sie, ob Ihre Konfiguration korrekt ist.

dSYM-Dateien manuell hochladen

Wenn automatische Uploads fehlschlagen, können Sie Ihre dSYM-Dateien mit einer der folgenden Optionen manuell hochladen.

  • Option 1: Verwenden Sie die Drag-and-drop-Oberfläche in der Firebase Console, um eine ZIP-Datei mit Ihren dSYM-Dateien hochzuladen. Rufen Sie dazu das Dashboard DevOps & Engagement > Crashlytics > Tab dSYMs auf.

  • Option 2: Verwenden Sie das upload-symbols Skript, das Sie von überall in Ihrem Build-Prozess aufrufen können, um Ihre dSYM-Dateien manuell hochzuladen. Verwenden Sie eine der folgenden Optionen, um das Skript upload-symbols auszuführen:

    • Option A: Fügen Sie Ihrem Build-Prozess die folgende Zeile hinzu:

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • Option B: Führen Sie das Skript direkt auf Ihrem Terminal aus:

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    Nutzungshinweise und weitere Anleitungen zu diesem Skript finden Sie, wenn Sie upload-symbols mit dem Parameter --help ausführen.