重要
Visual Studio App Center 于 2025 年 3 月 31 日停用,但分析和诊断功能除外,这些功能将继续受支持,直到 2026 年 6 月 30 日。 了解详细信息。
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 门户
- 在应用模块的生成目录中下载
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
文件。
删除映射文件
-
GET
向 symbols_list API 发出请求。 这会检索已上传的映射文件的 ID。 -
DELETE
使用映射文件 ID 向symbols_upload API 发出请求。 这会删除指定的映射文件。