Standardmäßig verarbeitet Firebase Crashlytics automatisch Ihre dSYM-Dateien, um Ihnen deobfuscierte, für Menschen lesbare Absturzberichte zur Verfügung zu stellen. Sie konfigurieren dieses Verhalten in der Regel bei der Ersteinrichtung von Crashlytics in Ihrer App. Dazu fügen Sie ein Ausführungsskript hinzu, das während der Buildphase Ihrer App automatisch DSYM-Dateien hochlädt.
Leider kann es in einigen Fällen dazu kommen, dass der automatische Upload Ihrer dSYM-Dateien fehlschlägt. In diesem Leitfaden finden Sie einige Möglichkeiten zur Fehlerbehebung, wenn Crashlytics die dSYM-Dateien Ihrer App nicht finden kann.
Prüfen, ob Xcode dSYM-Dateien automatisch verarbeiten und die Dateien hochladen kann
Bei der Einrichtung 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 müssen Sie in Xcode 15 und höher eine vollständigere Liste der Dateispeicherorte angeben. Für das Crashlytics-Ausführungsskript (firebase-ios-sdk/Crashlytics/run
) muss Folgendes eingerichtet sein:
Klicken Sie auf den Tab Build-Phasen und maximieren Sie den Bereich Script ausführen.
Achten Sie darauf, dass Sie im Bereich Eingabedateien die Pfade zu den folgenden Dateien angeben:
${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)
Prüfen, ob Xcode dSYMs generiert
In den meisten Fällen fehlen dSYM-Dateien, weil sie in Xcode einfach nicht erstellt werden. Wenn ein Upload fehlschlägt, wird in der Firebase-Konsole von Crashlytics die Warnung „Fehlende dSYM-Datei“ angezeigt. Wenn Sie diese Benachrichtigung erhalten, prüfen Sie zuerst, ob Xcode für jeden Build die richtige dSYM-Datei generiert:
Öffnen Sie Ihr Projekt in Xcode und wählen Sie dann die Projektdatei im Xcode-Navigator aus.
Wählen Sie das Hauptziel für die Build-Phase aus.
Öffnen Sie den Tab Build-Einstellungen des Ziels und klicken Sie auf Alle.
Suchen Sie nach
debug information format
.Legen Sie für alle Buildtypen DWARF mit dSYM-Datei als Debug-Informationsformat 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 nach Ihren dSYMs und laden Sie sie manuell in Crashlytics hoch.
dSYMs auf einem lokalen Computer finden
Führen Sie den folgenden Befehl aus, um die UUIDs aller DSYMs auf Ihrem Computer anzuzeigen 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 Ihre .app
befindet. Standardmäßig befindet sich das Verzeichnis Products
in Derived Data
. Wenn Ihre App für die Produktion freigegeben wurde, können Sie auch im Verzeichnis .xcarchive
auf dem Laufwerk 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 gedrückten Maustaste auf ein Archiv, um es im Finder aufzurufen. Klicken Sie noch einmal mit der rechten Maustaste darauf und dann auf Paketinhalt anzeigen.
In
.xcarchive
befindet sich das Verzeichnis „dSYMs“, 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 dSYM-Dateien, entweder automatisch oder manuell.
(Empfohlen) DSYMs automatisch verarbeiten und die Dateien hochladen
Wenn Sie Crashlytics zum ersten Mal eingerichtet haben, haben Sie höchstwahrscheinlich dieses automatische Uploadverhalten für Ihre App konfiguriert. Wenn automatische Uploads jedoch fehlschlagen, prüfen Sie, ob Ihre Konfiguration korrekt ist.
dSYM-Dateien manuell hochladen
Wenn der automatische Upload fehlschlägt, können Sie Ihre dSYM-Dateien mit einer der folgenden Optionen manuell hochladen.
Option 1: Verwenden Sie die konsolenbasierte Option „Drag-and-drop“, um eine ZIP-Datei mit Ihren dSYM-Dateien hochzuladen. Rufen Sie dazu die Firebase-Konsole > Crashlytics > Tab dSYMs auf.
Option 2: Verwenden Sie das
upload-symbols
-Script, das Sie an einer beliebigen Stelle im Build-Prozess aufrufen können, um Ihre dSYM-Dateien manuell hochzuladen. Sie haben folgende Möglichkeiten, dasupload-symbols
-Script auszuführen:Option A: Fügen Sie die folgende Zeile in Ihren Build-Prozess ein:
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 über das Terminal aus:
/PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs
Hinweise zur Verwendung und weitere Anleitungen zu diesem Script finden Sie, wenn Sie
upload-symbols
mit dem Parameter--help
ausführen.