共用方式為


Android Deobfuscation

重要

Visual Studio App Center 已排定於 2025 年 3 月 31 日淘汰。 雖然您可以繼續使用 Visual Studio App Center,直到完全淘汰為止,但有數個建議的替代方案可以考慮移轉至。

深入瞭解支持時程表和替代方案。

ProGuard、DexGuard 和 R8 是優化和模糊處理 Android 應用程式程式代碼的工具。 它會移除未使用的程式代碼、使用語意遮蔽名稱重新命名類別、欄位和方法,讓程式代碼基底變得更小且難以反向工程。 若要在Android應用程式中啟用 ProGuard 或 R8 的混淆,請遵循 官方的 Android 開發人員檔

在 Android 應用程式中啟用 ProGuard、DexGuard 或 R8 後,您的堆疊追蹤必須已取消搜尋。 當您上傳mapping.txt在每個組建上建立的檔案時,App Center 會自動清除 Java、Kotlin 和 React Native Android 應用程式的堆疊追蹤。 此檔案會將原始類別、方法和功能變數名稱對應至模糊化名稱,讓堆疊追蹤可讀取。

App Center 組建和散發服務可以自動產生對應檔案,並將其上傳至診斷服務。 如果您使用App Center來建置應用程式並自動散發給終端使用者,則不需要手動取得並上傳對應檔案,如下列步驟所述。

上傳 mapping.txt 檔案

App Center 入口網站

  1. mapping.txt從應用程式模組的組建目錄下載檔案
  2. 登入 App Center 並選取您的應用程式
  3. 在左側功能表中,流覽至 [ 診斷] 區
  4. 選取 對應
  5. 按下右上方的 [上傳對應 ] 按鈕
  6. 填入版本名稱和版本代碼 (這些必須符合該組建的 Gradle 組態,才能讓對應適用於特定組建)
  7. mapping.txt從應用程式模組的組建目錄上傳檔案。
  8. 按一下 [儲存] 按鈕。

App Center API

透過 API 上傳對應檔案的程式包含一系列三個 API 呼叫:一個在後端配置空間、一個用來上傳檔案,另一個用來更新上傳的狀態。 第一個 API 呼叫的主體應該設定 symbol_typeAndroidProguardbuild 以及 version 分別對應至版本代碼和版本名稱的屬性,以及 file_name

  1. POST觸發對 symbol_uploads API 的要求。 此呼叫會在後端為您的檔案配置空間,並傳 symbol_upload_id 回 和 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. upload_url使用從第一個步驟傳回的屬性,以標頭提出PUT要求,"x-ms-blob-type: BlockBlob"並提供磁碟上檔案的位置。 此呼叫會將檔案上傳至後端記憶體帳戶。 深入瞭解 PUT Blob要求標頭
curl -X PUT '{upload_url}' \
    -H 'x-ms-blob-type: BlockBlob' \
    --upload-file '{path to file}'
  1. 使用從第一PATCH個步驟傳回的屬性,向symbol_uploads API 提出要求。symbol_upload_id 在要求的本文中,指定您要將上傳 committed 狀態設定為 () 上傳程式順利完成,還是 aborted (未順利完成) 。
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" }'

注意

符號上傳 API 不適用於大於 256MB 的檔案。 使用 App Center CLI 上傳這些檔案。 您可以遵循 App Center CLI 存放庫中的指示來安裝 App Center CLI。

App Center CLI

您也可以使用 CLI 上傳對應檔案:

appcenter crashes upload-mappings --mapping {mapping file} --version-name {version name} --version-code {version code}

注意

App Center 無法檢查您是否已上傳正確的 mapping.txt 檔案。 建議您在建立.apk檔案之後直接上傳檔案,或者如果您想要稍後上傳檔案,請將它推送至程式代碼存放庫。

從 App Center 中的組建轉送對應

如果組建設定 為產生 mapping.txt 檔案,App Center 組建會以可用的下載方式產生檔案。 自動散發組建,或稍後手動散發它,會將檔案轉送 mapping.txt 至診斷,以取消混淆傳入損毀報告。 發佈組建之後,不需要手動上傳 mapping.txt 檔案。

刪除對應檔案

  1. GETsymbols_list API 提出要求。 這會擷取您所上傳對應檔案的標識碼。
  2. DELETE使用對應檔案標識碼向symbols_upload API 提出要求。 這會刪除指定的對應檔。