這很重要
Visual Studio App Center 於 2025 年 3 月 31 日淘汰,但分析和診斷功能除外,這些功能將持續支援到 2026 年 6 月 30 日。 瞭解更多資訊。
ProGuard、DexGuard 和 R8 是優化和模糊化 Android 應用程式程式代碼的工具。 它會移除未使用的程式代碼、重新命名具有語意模糊名稱的類別、欄位和方法,讓程式代碼基底變得更小,更難進行反向工程。 若要在Android應用程式中啟用 ProGuard 或 R8 混淆功能,請遵循 官方的 Android 開發人員檔。
在您的 Android 應用程式中啟用 ProGuard、DexGuard 或 R8 時,必須對堆疊追蹤進行解混淆。 App Center 會在您上傳每次建置時所建立的 mapping.txt 檔案後,自動去模糊化 Java、Kotlin 和 React Native Android 應用程式的堆疊追蹤。 此檔案會將原始類別、方法和功能變數名稱對應至模糊名稱,讓堆疊追蹤可讀取。
App Center 組建和發佈服務可以自動產生對應檔案,並自動上傳至診斷服務。 如果您使用App Center來建置並自動將應用程式散發給使用者,則不需要手動取得並上傳對應檔案,如下列步驟所述。
上傳 mapping.txt 檔案
App Center 入口網站
-
mapping.txt從應用程式模組的組建目錄下載檔案 - 登入 App Center 並選取您的應用程式
- 在左側功能表中,流覽至 [ 診斷] 區 段
- 選取 對應
- 按下右上方的上傳對應按鈕
- 填入版本名稱和版本代碼 (這些必須符合該組建的 Gradle 組態,才能讓對應適用於特定組建)
-
mapping.txt從應用程式模組的組建目錄上傳檔案。 - 按一下 [儲存] 按鈕。
App Center API
透過 API 上傳對應檔案的程式包含一系列三個 API 呼叫:一個用來配置後端的空間、一個用來上傳檔案,另一個用來更新上傳的狀態。 第一個 API 呼叫的主體應該分別設定 symbol_type 為 AndroidProguard, build 以及 version 對應至版本代碼和版本名稱的屬性,以及 file_name。
-
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}'
- 使用從第一個步驟返回的
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}'
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 檔案。
刪除映射檔案
- 向
GETsymbols_list API 提出要求。 這會擷取您所上傳對應檔案的標識碼。 - 使用
DELETE映射檔案 ID 向 symbols_upload API 發送請求。 這會刪除指定的對應檔。