Freigeben über


iOS-Symbolik

Von Bedeutung

Visual Studio App Center wurde am 31. März 2025 eingestellt, mit Ausnahme der Analyse- und Diagnosefeatures, die bis zum 30. Juni 2026 weiterhin unterstützt werden. Weitere Informationen

MacOS-, tvOS- und iOS-Absturzberichte zeigen die Stapelablaufverfolgungen für alle ausgeführten Threads Ihrer App zum Zeitpunkt des Absturzes an. Die Stapelablaufverfolgungen enthalten nur Speicheradressen; keine Klassennamen, Methoden, Dateinamen oder Zeilennummern, die erforderlich sind, um die Abstürze zu verstehen.

Um die übersetzten Speicheradressen abzurufen, müssen Sie ein dSYM-Paket in Das App Center hochladen, das alle informationen enthält, die für die Symbolik erforderlich sind. Weitere Informationen zur Symbolik finden Sie in der offiziellen Entwicklerdokumentation von Apple.

Der App Center-Build- und Verteilungsdienst kann automatisch eine gültige dSYM- und Quellzuordnungsdatei .zip generieren und die Datei in den Diagnosedienst hochladen. Wenn Sie App Center zum Erstellen und automatischen Verteilen Ihrer App an Ihre Endbenutzer verwenden, müssen Sie die Symboldateien nicht manuell abrufen und hochladen.

Unsymbolische Abstürze

Unsymbolische Abstürze werden im Abschnitt "App Center Diagnostics" angezeigt, sodass Sie einige Details auch vor dem Hochladen von Symbolen anzeigen können. Die fehlenden Symbole dieser Abstürze werden auf der Registerkarte "Nichtsymboliert" angezeigt. Wenn die fehlenden Symbole hochgeladen werden, wird die nichtsymbolierte Absturzgruppe durch eine symbolische Absturzgruppe ersetzt.

Das Bündel .dSYM finden

  1. Öffnen Sie in Xcode das Menü "Fenster ", und wählen Sie dann " Organisieren" aus.
  2. Wählen Sie die Registerkarte "Archive" aus .
  3. Wählen Sie Ihre App in der linken Randleiste aus.
  4. Klicken Sie mit der rechten Maustaste auf das neueste Archiv, und wählen Sie "In Finder anzeigen" aus.
  5. Klicken Sie im Finder mit der rechten Maustaste auf die .xcarchive Datei, und wählen Sie " Paketinhalte anzeigen" aus.
  6. Sie sollten einen Ordner mit dem Namen dSYMs sehen, der Ihr dSYM-Bundle enthält.
  7. Erstellen Sie eine ZIP-Datei des dSYM-Bündels.

Wenn Sie Visual Studio anstelle von Xcode verwenden, finden Sie unter Wo finde ich die dSYM-Datei, um iOS-Absturzprotokolle zu symbolisieren? die dSYM-Datei.

Hochladen von Symbolen

App-Center-Portal

  1. Melden Sie sich beim App Center an, und wählen Sie Ihre App aus.
  2. Navigieren Sie im linken Menü zum Abschnitt "Diagnose ", und wählen Sie "Symbole" aus.
  3. Klicken Sie in der oberen rechten Ecke auf "Symbole hochladen ", und laden Sie die Datei hoch.
  4. Nachdem die Symbole vom App Center indiziert wurden, werden Abstürze für Sie symbolisch dargestellt.

React Native iOS-Apps

Um Symboldateien für React Native iOS-Dateien zu erhalten, erstellen Sie eine ZIP-Datei mit dem dSYM-Paket auf Ihrem Mac und der JavaScript-Quellzuordnung Ihrer App. Die Quellzuordnung sollte index.ios.map benannt werden. Die folgenden Befehle erzeugen die Quellkarte für Release-Builds.

react-native bundle --entry-file index.ios.js --platform ios --dev false --reset-cache --bundle-output unused.jsbundle --sourcemap-output index.ios.map

App Center-API

Der Prozess zum Hochladen von Symbolen über die API umfasst eine Reihe von drei API-Aufrufen: eines zum Zuweisen von Speicherplatz auf unserem Back-End, eines zum Hochladen der Datei und eines zum Aktualisieren des Status des Uploads. Der Text des ersten API-Aufrufs sollte symbol_type auf Apple setzen.

  1. Auslösen einer POST Anforderung an die symbol_uploads-API. Mit diesem Aufruf wird Speicherplatz auf unserem Back-End für Ihre Datei zugewiesen und eine symbol_upload_id- und upload_url-Eigenschaft geliefert.
curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \
    -H 'accept: application/json' \
    -H 'X-API-Token: {API TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{JSON BODY}'
  1. Erstellen Sie mithilfe der eigenschaft, die upload_url aus dem ersten Schritt zurückgegeben wird, eine PUT Anforderung mit dem Header: "x-ms-blob-type: BlockBlob" und geben Sie den Speicherort der Datei auf dem Datenträger an. Dieser Aufruf lädt die Datei in unsere Back-End-Speicherkonten hoch. Erfahren Sie mehr über PUT Blob-Anforderungsheader.
curl -X PUT '{upload_url}' \
    -H 'x-ms-blob-type: BlockBlob' \
    --upload-file '{path to file}'
  1. Stellen Sie eine PATCH Anforderung an die symbol_uploads-API mithilfe der Eigenschaft, die im ersten Schritt zurückgegeben wurde. Geben Sie im Textkörper der Anforderung an, ob Sie den Status des Uploads auf committed den (erfolgreich abgeschlossenen) Uploadvorgang oder aborted (erfolglos abgeschlossen) festlegen möchten.
curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \
    -H 'accept: application/json' \
    -H 'X-API-Token: {API TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{ "status": "committed" }'

Hinweis

Die Symboluploads-API funktioniert nicht für Dateien, die größer als 256 MB sind. Verwenden Sie die App Center CLI, um diese Dateien hochzuladen. Sie können die App Center CLI installieren, indem Sie die Anweisungen in unserem App Center CLI-Repository befolgen.

App Center CLI

Sie können auch die CLI verwenden, um Symboldateien hochzuladen:

appcenter crashes upload-symbols --symbol {symbol file}

Bitcode

Bitcode wurde von Apple eingeführt, damit Apps, die an den App Store gesendet werden, von Apple selbst neu kompiliert und die neueste Optimierung angewendet werden können. Wenn Bitcode aktiviert ist, unterscheiden sich die für Ihre App im Store generierten Symbole von denen ihres eigenen Buildsystems.

Die Absturzberichterstattung im App Center unterstützt die Symbolisierung von Abstürzen von Bitcode-fähigen Apps noch nicht vollständig. In der Zwischenzeit empfehlen wir Ihnen, Bitcode zu deaktivieren. Das Deaktivieren von Bitcode vereinfacht die Verwaltung von Symbolen erheblich und weist derzeit keine bekannten Nachteile für iOS-Apps auf.

Deaktivieren von Bitcode für Ihre App

  1. Öffnen Sie in Xcode Ihre Projekteinstellungen, indem Sie im Project Navigator auf das Element der obersten Ebene klicken.
  2. Zur Seite "Build-Einstellungen" gehen
  3. Suchen Sie nach bitcode.
  4. Ändern Sie im Ergebnis den Wert von "Ja" in "Nein".
  5. Bauen Sie Ihre App neu auf

Mit diesen einfachen Schritten verhält sich die App Center-Absturzberichterstattung wie gewohnt.

Abrufen von Symbolen für bitcodefähige Apps

Wenn Sie Bitcode aktiviert lassen möchten, können Sie die richtigen dSYM-Dateien herunterladen, indem Sie die folgenden Schritte ausführen:

  1. Öffnen Sie den Organizer in Xcode.
  2. Wählen Sie das spezifische Archiv Ihrer App aus, das Sie in iTunes Connect hochgeladen haben.
  3. Klicken Sie auf die Schaltfläche "DSYMs herunterladen". In diesem Schritt werden die kompilierten dSYM-Dateien von Bitcode in das ursprüngliche Archiv eingefügt.
  4. Laden Sie die Symbole in die entsprechende App und Version im App Center hoch

Wenn der Xcode-Organisator keine neuen Symbole bereitstellt, müssen Sie die dSYM-Dateien aus dem iTunes Connect-Portal herunterladen, indem Sie die folgenden Schritte ausführen:

  1. Wählen Sie Ihre App im iTunes Connect-Portal aus.
  2. Wählen Sie oben die Registerkarte "Aktivität" aus.
  3. Wählen Sie die Buildversion Ihrer App mit den fehlenden Symbolen aus.
  4. Klicken Sie auf den Link "dSYM herunterladen"
  5. Laden Sie die heruntergeladene Datei in das App Center hoch. Diese Datei enthält die Symbole, die für Das App Center erforderlich sind, um Ihre Abstürze zu symbolischen.

Problembehandlung bei Symbolproblemen

Wenn Ihre Abstürze nach dem Hochladen von Symbolen und dem Deaktivieren von Bitcode weiterhin unsymbolisch angezeigt werden, liegt dies möglicherweise daran, dass die hochgeladenen dSYM-Dateien nicht mit den für App Center erforderlichen Dateien übereinstimmen. Wenn Sie dSYM-Dateien hochladen, gleicht App Center sie basierend auf ihren UUIDs mit der richtigen App-Version ab.

Sie können überprüfen, ob Ihre dSYM-Dateien über die richtigen UUIDs verfügen, indem Sie ein CLI-Tool namens Zwergdump verwenden.

  1. Suchen Sie die UUID in der dSYM-Datei:
dwarfdump --u CrashProbeiOS.app.dSYM
  1. Das Ergebnis sollte in etwa wie folgt aussehen:
UUID:ADF53C85-4638-3EFF-A33C-42C13A18E915 (armv7)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
UUID:D449E33D-7E74-379D-8B79-15EE104ED1DF (arm64)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
  1. Überprüfen Sie, ob die zurückgegebene UUID mit den im Dialogfeld "Debugsymbolen" angezeigten UUIDs übereinstimmt:

App Center zeigt die UUID der erforderlichen Symbole an.

Ignorieren von Symbolen

Wenn App Center nicht über alle Symboldateien verfügt, um vollständig symbolische Absturzberichte zu erstellen, werden die Abstürze auf der Registerkarte " Nicht symboliert " aufgeführt. Die erforderlichen Symbole werden von dieser Seite hochgeladen, wenn Sie Zugriff darauf haben.

Wenn Sie die Symbole nicht hochladen können, können Sie sie als ignoriert markieren, indem Sie Zeilen in der Tabelle auswählen und auf die Schaltfläche " Versionen ignorieren " klicken. Diese Schaltfläche weist App Center an, die Abstürze zu verarbeiten und sie so vollständig wie möglich mit den Symbolen in der Datei zu symbolisieren. Nachdem sie die Verarbeitung abgeschlossen haben, werden sie auf der Registerkarte „Abstürze“ teilweise symbolisiert angezeigt. Neue Abstürze, die auch von den gleichen Symbol-IDs abhängen, die als ignoriert gekennzeichnet sind, umgehen die Registerkarte Unsymbolisiert, sobald sie eintreffen und durch das System fließen.