Freigeben über


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.

Erfahren Sie mehr über Supportzeitpläne und Alternativen.

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

  1. Laden Sie die mapping.txt Datei aus dem Buildverzeichnis Ihres App-Moduls herunter.
  2. Melden Sie sich beim App Center an, und wählen Sie Ihre App aus.
  3. Navigieren Sie im linken Menü zum Abschnitt Diagnose .
  4. Wählen Sie Zuordnungen aus.
  5. Klicken Sie oben rechts auf die Schaltfläche Zuordnungen hochladen .
  6. 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)
  7. Laden Sie die mapping.txt Datei aus dem Buildverzeichnis Ihres App-Moduls hoch.
  8. 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 AndroidProguardund buildversion die Eigenschaften festgelegt symbol_type werden, die dem Versionscode bzw. Versionsnamen entsprechen, sowie auf .file_name

  1. 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 eine symbol_upload_id - und eine -Eigenschaft zurück upload_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}'
  1. Erstellen Sie mithilfe der upload_url eigenschaft, die aus dem ersten Schritt zurückgegeben wurde, eine PUT 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}'
  1. Senden Sie eine PATCH Anforderung an die symbol_uploads-API , indem Sie die symbol_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 auf committed den Uploadvorgang (erfolgreich abgeschlossen) oder aborted (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

  1. Stellen Sie eine GET Anforderung an die symbols_list-API. Dadurch werden die IDs für die von Ihnen hochgeladenen Zuordnungsdateien abgerufen.
  2. Stellen Sie eine DELETE Anforderung an die symbols_upload-API mit der Zuordnungsdatei-ID. Dadurch wird die angegebene Zuordnungsdatei gelöscht.