Android NDK
Wichtig
Visual Studio App Center wird am 31. März 2025 eingestellt. Sie können Visual Studio App Center zwar weiterhin verwenden, bis es vollständig eingestellt ist, es gibt jedoch mehrere empfohlene Alternativen, zu denen Sie eine Migration in Betracht ziehen können.
Mit Android NDK können Sie Teile Ihrer Android-Apps mithilfe von C und C++ implementieren. Sie können die Google Breakpad-Clientbibliothek für Ihre Android-Apps verwenden, um gültige Stapelüberwachungen im nativen Code zu erhalten. Die Stapelüberwachungen dürfen nur Speicheradressen enthalten. Sie zeigen keine Klassennamen, Methoden, Dateinamen und Zeilennummern an, die zum Lesen und Verstehen der Abstürze benötigt werden. Um die Speicheradressen für Ihre Android NDK-App zu übersetzen, müssen Sie Anwendungssymbole für jeden Build hochladen.
Informationen zum Melden von NDK-Abstürze finden Sie in der Android SDK-Dokumentation für Android-Apps oder in der Unity SDK-Dokumentation für Unity-Apps.
Wenn Sie Breakpadabstürze von anderen Plattformen an App Center senden möchten, lesen Sie die Dokumentation zum Hochladen benutzerdefinierter Abstürze.
Nicht symbolische Abstürze
Nichtsymbolische Abstürze werden im Abschnitt App Center-Diagnose angezeigt, sodass Sie einige Details anzeigen können, bevor Sie Symbole hochladen. Die fehlenden Symbole aus diesen Abstürze werden auf der Registerkarte "unsymbolicated" angezeigt. Wenn die fehlenden Symbole hochgeladen werden, wird die nichtsymbolische Absturzgruppe durch eine symbolische Absturzgruppe ersetzt.
Hinweis
App Center unterstützt keine Symbolische Darstellung von Frames, die aus Systembibliotheken stammen. Angesichts der hohen Fragmentierung der Systembinärdateien für Android und andere Plattformen – die sich bei jeder Kombination aus Geräte-/Betriebssystemversion unterscheiden können – stellt App Center selbst keine Symbole für Systembinärdateien bereit und überspringt automatisch Frames aus Systembinärdateien in symbolischer Weise.
Generieren einer hochzuladenden .zip-Datei
Es gibt zwei Möglichkeiten für App Center, die für die Symbolik erforderlichen Symbole abzurufen. App Center kann sie aus den nativen Binärdateien generieren, die in Ihrem Projekt verwendet werden, oder Sie können die Breakpadsymbole direkt hochladen.
Option 1: Hochladen nativer Binärdateien
Fügen Sie alle SO-Dateien aus dem Projektverzeichnis obj/local/$ABI/
in eine .zip-Datei ab.
Option 2: Hochladen von Breakpadsymbolen
- Speichern Sie die Symbole mithilfe der Breakpad-Toolkette, wie in der Breakpad-Dokumentation im Abschnitt "Abrufen der Debugsymbole" beschrieben.
- Erstellen Sie eine symbols.zip-Datei mit der folgenden Struktur:
Hinweis
Wenn Sie Ihre Symbole von macOS hochladen, müssen Sie Ihre Symbole aus allen überflüssigen Ordnern sauber, z. B. __MACOS generiert wird, und um dies zu löschen, können Sie verwendenzip -d <symbols.zip> __MACOSX/\*
.
$ unzip -l symbols.zip
Archive: symbols.zip
Length Date Time Name
-------- ---- ---- ----
0 07-22-13 15:07 symbols/
0 07-22-13 15:07 symbols/libnative.so/
0 07-22-13 15:07 symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/
12468 07-22-13 15:07 symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/libnative.so.sym
0 07-22-13 15:07 symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/
12467 07-22-13 15:07 symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/libnative.so.sym
-------- -------
24935 6 files
Hochladen von Symbolen
Hinweis
Der App Center-Build- und Verteilungsdienst kann Symbole automatisch an den Diagnosedienst weiterleiten. Wenn Sie App Center verwenden, um Ihre App zu erstellen und automatisch an Ihre Endbenutzer zu verteilen, müssen Sie die Symboldateien nicht manuell abrufen und hochladen, wie in den folgenden Schritten beschrieben.
App Center-Portal
- Melden Sie sich App Center an, und wählen Sie Ihre App aus.
- Navigieren Sie im linken Menü zum Abschnitt Diagnose und dann zu Problemen.
- Wenn Ihre Anwendung noch keinen Absturz gemeldet hat, müssen Sie die API oder CLI verwenden, um Breakpadsymbole hochzuladen.
- Wenn Ihre Anwendung bereits Abstürze gemeldet hat, die Symbole benötigen, überprüfen Sie die Registerkarte Nichtsymbolikiert , und es sollte eine Versionsgruppe mit fehlenden Symbolen geben, klicken Sie darauf, um das Menü zum Hochladen der Datei anzuzeigen.
- Nachdem die Symbole von App Center indiziert wurden, werden Abstürze für Sie symbolisch dargestellt.
App Center-API
Der Prozess zum Hochladen von Symbolen über die API umfasst eine Reihe von drei API-Aufrufen: einer zum Zuweisen von Speicherplatz auf unserem Back-End, einer zum Hochladen der Datei und einer zum Aktualisieren der status des Uploads. Der Text des ersten API-Aufrufs sollte auf festgelegt symbol_type
werden Breakpad
.
- Lösen Sie eine
POST
Anforderung an die symbol_uploads-API aus. Dieser Aufruf ordnet Speicherplatz auf unserem Back-End für Ihre Datei zu und gibt einesymbol_upload_id
- und eine -Eigenschaft zurückupload_url
.
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}'
- Erstellen Sie mithilfe der
upload_url
eigenschaft, die aus dem ersten Schritt zurückgegeben wurde, einePUT
Anforderung mit dem Header:"x-ms-blob-type: BlockBlob"
und geben Sie den Speicherort Ihrer 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}'
- Senden Sie eine
PATCH
Anforderung an die symbol_uploads-API , indem Sie diesymbol_upload_id
Eigenschaft verwenden, die aus dem ersten Schritt zurückgegeben wurde. Geben Sie im Text der Anforderung an, ob Sie die status des Uploads aufcommitted
den Uploadvorgang (erfolgreich abgeschlossen) oderaborted
(nicht erfolgreich 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 Symbolupload-API funktioniert nicht für Dateien, die größer als 256 MB sind. Verwenden Sie die App Center-Befehlszeilenschnittstelle, 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 --breakpad {symbols file}
Ignorieren von Symbolen
Wenn App Center nicht über alle Symboldateien verfügt, um Absturzberichte vollständig zu symbolieren, werden die Abstürze auf der Registerkarte Unsymbolicated 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 in der Datei gespeicherten Symbolen zu symbolisieren. Nachdem sie die Verarbeitung abgeschlossen haben, werden sie auf der Registerkarte Abstürze teilweise symbolisch dargestellt angezeigt. Neue Abstürze, die auch von den gleichen Symbol-IDs abhängen, die als ignoriert markiert sind, umgehen die Registerkarte Unsymbolicated , wenn sie eintreffen und durch das System fließen.