Freigeben über


Android-Entschleierung

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

ProGuard, DexGuard und R8 sind Tools zum Optimieren und Verschleiern des Codes von Android-Apps. Es entfernt nicht verwendete Codezeilen, benennt Klassen, Felder und Methoden mit semantisch verdeckten Namen um, wodurch die Codebasis kleiner und schwieriger für Reverse Engineering wird. Um die Verschleierung mit ProGuard oder R8 in Ihrer Android-App zu aktivieren, folgen Sie der offiziellen Android-Entwicklerdokumentation.

Wenn ProGuard, DexGuard oder R8 in Ihrer Android-App aktiviert sind, müssen Ihre Stack-Traces deobfuscieren werden. App Center entfernt automatisch Stapelablaufverfolgungen für Ihre Java-, Kotlin- und React Native Android-Apps, wenn Sie die mapping.txt auf jedem Build erstellte Datei hochladen. Diese Datei ordnet die ursprünglichen Klassen-, Methoden- und Feldnamen den verschleierten Namen zu, wodurch die Stacktraces leserlich werden.

Der Build- und Verteilungsdienst von App Center kann automatisch Zuordnungsdateien generieren und in den Diagnosedienst hochladen. Wenn Sie App Center zum Erstellen und automatischen Verteilen Ihrer App an Ihre Endbenutzer verwenden, müssen Sie die Zuordnungsdateien nicht manuell abrufen und hochladen, wie in den nachstehenden 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. Zuordnungen auswählen
  5. Klicken Sie oben rechts auf die Schaltfläche "Upload-Mappings".
  6. Geben Sie den Versionsnamen und den Versionscode ein (diese müssen der Gradle-Konfiguration dieses Builds entsprechen, 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 Speichern.

App Center-API

Der Prozess zum Hochladen von Zuordnungsdateien ü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 Inhalt des ersten API-Aufrufs sollte symbol_type auf AndroidProguard, build und version Eigenschaften festgelegt werden, die dem Versionscode bzw. dem Versionsnamen entsprechen, und auf eine file_name.

  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 die CLI auch 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 sie in Ihr Code-Repository zu übertragen, wenn Sie sie später hochladen möchten.

Weiterleiten des Mappings von einem Build im App Center

Wenn ein Build für die Erstellung einer mapping.txt Datei konfiguriert ist, erstellen App Center-Builds die Datei als verfügbaren Download. Durch die automatische Verteilung des Builds oder die spätere manuelle Verteilung wird die Datei an mapping.txt Diagnostics weitergeleitet, um eingehende Absturzberichte zu deobfuskieren. Es ist nicht erforderlich, die Datei nach der mapping.txt Verteilung 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 Anfrage an die symbols_upload API mit der ID der Zuordnungsdatei. Dadurch wird die angegebene Zuordnungsdatei gelöscht.