Android Deobfuscation
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.
ProGuard, DexGuard und R8 sind Tools, um den Code von Android-Apps zu optimieren und zu verschleiern. Es entfernt nicht verwendeten Code, benennt Klassen, Felder und Methoden mit semantisch obskuren Namen um, wodurch die Codebasis kleiner und schwieriger zu reverse engineering ist. Wenn Sie die Verschleierung mit ProGuard oder R8 in Ihrer Android-App aktivieren möchten, folgen Sie der offiziellen Android-Entwicklerdokumentation.
Wenn ProGuard, DexGuard oder R8 in Ihrer Android-App aktiviert sind, müssen Ihre Stapelüberwachungen deobfusciert werden. App Center entfernt automatisch Stapelablaufverfolgungen für Ihre Java-, Kotlin- und React Native Android-Apps, wenn Sie die datei hochladen, die mapping.txt
für jeden Build erstellt wurde. Diese Datei ordnet die ursprünglichen Klassen-, Methoden- und Feldnamen den verschleierten Namen zu, sodass die Stapelüberwachungen lesbar sind.
Der App Center-Dienst "Build and Distribution" kann automatisch Zuordnungsdateien generieren und in den Diagnosedienst hochladen. Wenn Sie App Center verwenden, um Ihre App zu erstellen und automatisch an Ihre Endbenutzer zu verteilen, müssen Sie die Zuordnungsdateien nicht manuell abrufen und hochladen, wie in den folgenden Schritten beschrieben.
Hochladen der mapping.txt-Datei
App Center-Portal
- Laden Sie die
mapping.txt
Datei aus dem Buildverzeichnis Ihres App-Moduls herunter. - Melden Sie sich beim App Center an, und wählen Sie Ihre App aus.
- Navigieren Sie im linken Menü zum Abschnitt Diagnose .
- Wählen Sie Zuordnungen aus.
- Klicken Sie oben rechts auf die Schaltfläche Zuordnungen hochladen .
- Geben Sie den Versionsnamen und den Versionscode ein (diese müssen mit der Gradle-Konfiguration dieses Builds übereinstimmen, damit die Zuordnung für einen bestimmten Build funktioniert)
- Laden Sie die
mapping.txt
Datei aus dem Buildverzeichnis Ihres App-Moduls hoch. - Klicken Sie auf die Schaltfläche Save .
App Center-API
Der Prozess zum Hochladen von Zuordnungsdateien ü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 AndroidProguard
und build
version
die Eigenschaften festgelegt symbol_type
werden, die dem Versionscode bzw. Versionsnamen entsprechen, sowie auf .file_name
- 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 Zuordnungsdateien hochzuladen:
appcenter crashes upload-mappings --mapping {mapping file} --version-name {version name} --version-code {version code}
Hinweis
App Center kann nicht überprüfen, ob Sie die richtige mapping.txt
Datei hochgeladen haben. Es wird empfohlen, die Datei direkt nach dem Erstellen der .apk-Datei hochzuladen, oder pushen Sie sie in Ihr Coderepository, wenn Sie sie später hochladen möchten.
Weiterleiten der Zuordnung aus einem Build in App Center
Wenn ein Build für die Erstellung einer mapping.txt
Datei konfiguriert ist, erzeugen App Center-Builds die Datei als verfügbaren Download. Wenn Sie den Build automatisch verteilen oder später manuell verteilen, wird die Datei an die mapping.txt
Diagnose weitergeleitet, um eingehende Absturzberichte zu deaktivieren. Es ist nicht erforderlich, die Datei nach dem mapping.txt
Verteilen eines Builds manuell hochzuladen.
Löschen einer Zuordnungsdatei
- Stellen Sie eine
GET
Anforderung an die symbols_list-API. Dadurch werden die IDs für die von Ihnen hochgeladenen Zuordnungsdateien abgerufen. - Stellen Sie eine
DELETE
Anforderung an die symbols_upload-API mit der Zuordnungsdatei-ID. Dadurch wird die angegebene Zuordnungsdatei gelöscht.