Standardmäßig verarbeitet Firebase Crashlytics automatisch Ihre Debug-Symbol-Dateien (dSYM), um offengelegte und für Menschen lesbare Absturzberichte für Sie bereitzustellen. Normalerweise konfigurieren Sie dieses Verhalten bei der Ersteinrichtung von Crashlytics in Ihrer App, insbesondere indem Sie ein Ausführungsskript hinzufügen, das dSYM-Dateien während der Build-Phase Ihrer App automatisch hochlädt.
Leider gibt es einige Fälle, in denen der automatische Upload von dSYM-Dateien fehlschlagen kann. In dieser Anleitung finden Sie einige Möglichkeiten zur Fehlerbehebung, wenn Crashlytics die dSYM-Dateien Ihrer App nicht finden kann.
Sicherstellen, dass dSYMs automatisch in Xcode verarbeitet und die Dateien hochgeladen werden können
Beim Einrichten von Crashlytics in Ihrer App haben Sie ein Ausführungsskript konfiguriert, um dSYMs automatisch zu verarbeiten und die Dateien hochzuladen.
Achten Sie darauf, dass 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 Gruppe von Dateipfaden angeben. Für Ihr Crashlytics-Laufzeitskript (firebase-ios-sdk/Crashlytics/run
) muss Folgendes eingerichtet sein:
Klicken Sie auf den Tab Build Phases (Build-Phasen) und maximieren Sie dann den Bereich Run Script (Skript ausführen).
Prüfen Sie im Bereich Eingabedateien, ob die Pfade für die Speicherorte der folgenden Dateien angegeben 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
Wenn Sie$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
ENABLE_USER_SCRIPT_SANDBOXING=YES
undENABLE_DEBUG_DYLIB=YES
in den Build-Einstellungen Ihres Projekts haben, fügen Sie Folgendes hinzu:${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
Prüfen, ob Xcode dSYMs generiert
Häufig fehlen dSYM-Dateien, weil Xcode sie einfach nicht erstellt. Wenn ein Upload fehlschlägt, wird in Crashlytics in der Firebase-Konsole die Meldung „dSYM fehlt“ angezeigt. Wenn Sie diese Benachrichtigung erhalten, prüfen Sie zuerst, ob Xcode für jeden Build das richtige dSYM-File erstellt:
Öffnen Sie Ihr Projekt in Xcode und wählen Sie dann die Projektdatei im Xcode-Navigator aus.
Wählen Sie das primäre Build-Ziel aus.
Öffnen Sie den Tab Build-Einstellungen des Ziels und klicken Sie dann auf Alle.
Suchen Sie nach
debug information format
.Legen Sie für alle Ihre Build-Typen Debug Information Format (Format für Debuginformationen) auf DWARF with dSYM File (DWARF mit dSYM-Datei) fest.
Erstellen Sie Ihre App neu.
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.
dSYMs auf einem lokalen Computer suchen
Führen Sie den folgenden Befehl aus, um sich alle UUIDs Ihrer dSYMs auf Ihrem Computer anzeigen zu lassen und nach dem fehlenden dSYM zu suchen:
mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done
Wenn 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
nachsehen, in dem sich Ihr .app
befindet. Standardmäßig befindet sich das Verzeichnis Products
in Derived Data
. Wenn Ihre App in der Produktion veröffentlicht wird, können Sie auch im Verzeichnis .xcarchive
auf der Festplatte nach dem dSYM suchen:
Öffnen Sie in Xcode das Fenster Organizer und wählen Sie Ihre App aus der Liste aus. In Xcode wird eine Liste der Archive für Ihr Projekt angezeigt.
Klicken Sie mit der 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.
Im Ordner
.xcarchive
befindet sich ein dSYMs-Verzeichnis, das dSYMs enthält, die im Rahmen des Archivierungsprozesses von Xcode generiert wurden.
dSYM-Dateien hochladen
Crashlytics unterstützt mehrere Möglichkeiten zum Hochladen Ihrer dSYMs-Dateien, entweder automatisch oder manuell.
(Empfohlen) dSYMs automatisch verarbeiten und Dateien hochladen
Als Sie Crashlytics eingerichtet haben, haben Sie dieses automatische Uploadverhalten für Ihre App wahrscheinlich 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 manuell hochladen. Dazu haben Sie zwei Möglichkeiten:
Option 1: Verwenden Sie die konsolenbasierte Drag-and-drop-Funktion, um eine ZIP-Datei mit Ihren dSYM-Dateien hochzuladen (rufen Sie die Firebase-Konsole > 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 dasupload-symbols
-Skript 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 Script direkt auf Ihrem Terminal aus:
/PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs
Hinweise zur Verwendung und zusätzliche Anleitungen zu diesem Skript erhalten Sie, wenn Sie
upload-symbols
mit dem Parameter--help
ausführen.