介绍如何使用阿里云 EMAS APM 命令行工具自动化上传符号表。
准备阶段
下载命令行工具
工具提供三种分发形式,您可以根据实际环境选择合适的版本。
macOS ARM64版本(推荐Mac用户)
适用于Apple Silicon(M1/M2/M3/M4等)芯片的Mac电脑。
下载
# 下载工具
curl -o alibabacloud-apm-cli https://ios-repo.oss-cn-shanghai.aliyuncs.com/AlicloudApmCli/alibabacloud-apm-cli_macos-arm64
# 添加执行权限
chmod +x alibabacloud-apm-cli
# 移动到系统路径(可选,推荐)
sudo mv alibabacloud-apm-cli /usr/local/bin/验证安装
alibabacloud-apm-cli --version如果显示版本信息,说明安装成功。
Linux AMD64版本
适用于Linux服务器或CI/CD环境。
下载
# 下载工具
curl -o alibabacloud-apm-cli https://ios-repo.oss-cn-shanghai.aliyuncs.com/AlicloudApmCli/alibabacloud-apm-cli_linux-amd64
# 添加执行权限
chmod +x alibabacloud-apm-cli
# 移动到系统路径(可选,推荐)
sudo mv alibabacloud-apm-cli /usr/local/bin/验证安装
alibabacloud-apm-cli --version如果显示版本信息,说明安装成功。
Java版本(跨平台)
适用于所有支持Java的平台,需要Java 8或更高版本。
准备Java运行环境
工具需要Java 8或更高版本的运行环境。
下载工具
# 下载JAR包
curl -o alibabacloud-apm-cli.jar https://ios-repo.oss-cn-shanghai.aliyuncs.com/AlicloudApmCli/alibabacloud-apm-cli.jar使用方式
Java版本需要通过 `java -jar` 命令运行:
java -jar alibabacloud-apm-cli.jar --version如果显示版本信息,说明安装成功。
创建AccessKey
使用子账号创建AccessKey(推荐)
参考文档快速入门:创建RAM用户并授权
参考文档授权RAM用户为新创建的RAM用户添加权限
参考文档创建RAM用户的AccessKey,保存申请的AK/SK
使用主账号创建AccessKey
参考文档创建阿里云账号(主账号)的AccessKey(不推荐),保存申请的AK/SK
命令行参数说明
基本语法
二进制版本
alibabacloud-apm-cli [选项]Java版本
java -jar alibabacloud-apm-cli.jar [选项]必需参数
参数 | 长参数 | 说明 | 示例 |
|
| APM应用Key(数值类型) |
|
|
| 阿里云AccessKey ID |
|
|
| 阿里云AccessKey Secret |
|
|
| 平台类型: |
|
|
| 符号文件路径(文件或目录) |
|
可选参数
参数 | 长参数 | 说明 | 示例 |
|
| 应用版本号 |
|
|
| 构建ID(主要用于Android平台) |
|
| 启用详细日志输出模式 |
| |
|
| 显示帮助信息 |
|
| 显示工具版本信息 |
|
环境变量支持
为了提高安全性,工具支持通过环境变量传递敏感信息:
环境变量 | 对应参数 | 说明 |
|
| 阿里云AccessKey ID |
|
| 阿里云AccessKey Secret |
|
| APM应用Key |
环境变量示例
# 设置环境变量
export ALIBABA_CLOUD_ACCESS_KEY_ID=LTAI5t***
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=3yN***
export APM_APP_KEY=123456
# 使用环境变量运行(无需传递 -k、-i、-s 参数)
alibabacloud-apm-cli -p ios -f ./MyApp.app.dSYM -v 2.3.1使用方式
iOS平台:上传dSYM文件
上传单个dSYM文件
alibabacloud-apm-cli \
--app-key 123456 \
--access-key-id LTAI5t*** \
--access-key-secret 3yN*** \
--platform ios \
--file-path ./MyApp.app.dSYM上传包含dSYM的目录
# 可以直接指定目录,工具会自动查找目录中的dSYM文件
alibabacloud-apm-cli \
-k 123456 \
-i LTAI5t*** \
-s 3yN*** \
-p ios \
-f ./build/Release-iphoneos \
-v 2.3.1Android平台:上传mapping.txt和SO文件
上传ProGuard mapping文件
alibabacloud-apm-cli \
--app-key 123456 \
--access-key-id LTAI5t*** \
--access-key-secret 3yN*** \
--platform android \
--file-path ./app/build/outputs/mapping/release/mapping.txt \
--app-version 5.6.0 \
--build-id 20240220上传单个SO文件
alibabacloud-apm-cli \
--app-key 123456 \
--access-key-id LTAI5t*** \
--access-key-secret 3yN*** \
--platform android \
--file-path ./libs/arm64-v8a/libdemo.so上传整个架构的SO文件
# 指定包含多个SO文件的目录
alibabacloud-apm-cli \
--app-key 123456 \
--access-key-id LTAI5t*** \
--access-key-secret 3yN*** \
--platform android \
--file-path ./libs/arm64-v8aHarmony平台:上传鸿蒙符号文件
上传SO文件
alibabacloud-apm-cli \
--app-key 123456 \
--access-key-id LTAI5t*** \
--access-key-secret 3yN*** \
--platform harmony \
--file-path ./libs/arm64-v8a/libdemo.so上传混淆映射文件
alibabacloud-apm-cli \
--app-key 123456 \
--access-key-id LTAI5t*** \
--access-key-secret 3yN*** \
--platform harmony \
--file-path ./obfuscation \
-v 1.0.0H5平台:上传source map文件
alibabacloud-apm-cli \
--app-key 123456 \
--access-key-id LTAI5t*** \
--access-key-secret 3yN*** \
--platform h5 \
--file-path ./dist/main.js.map \
--app-version 3.2.0查看结果
登录EMAS管理控制台,选择应用监控,点击进入,进入到应用监控控制台。
在页面左侧导航栏选择崩溃分析,选择符号表管理

常见问题
权限错误
问题描述:
上传失败:权限验证失败可能原因和解决方案:
AccessKey错误:检查AccessKey ID和Secret是否正确
权限不足:确保AccessKey对应的账号具有以下权限:
APM服务的访问权限
OSS的上传权限
时间不同步:确保系统时间与标准时间同步(阿里云API使用时间戳验证)
文件类型识别问题
问题描述:
配置错误:不支持的文件类型解决方案:
检查文件路径:确保文件路径正确,文件确实存在
检查文件格式:
iOS:确保是
.dSYM目录,且包含Contents/Resources/DWARF结构Android:确保mapping文件包含
.txt扩展名,SO文件包含.so扩展名H5:确保source map文件包含
.map扩展名
使用详细日志:添加
--verbose参数查看详细的文件识别过程
上传失败排查
问题描述:
上传过程中发生错误:网络连接失败排查步骤:
检查网络连接:确保能够访问阿里云OSS服务
ping oss-cn-shanghai.aliyuncs.com使用详细日志模式:
alibabacloud-apm-cli --verbose -p ios -f ./MyApp.app.dSYM -v 2.3.1检查文件大小:如果文件过大,可能需要更长的上传时间,工具会自动重试
查看重试信息:工具内置重试机制,会自动重试最多3次,详细日志会显示重试过程
dSYM文件未生成
问题描述:
在iOS项目中找不到dSYM文件。
解决方案:
确保Xcode构建设置正确:
打开Xcode项目
选择Target → Build Settings
搜索 "Debug Information Format"
确保Release配置下设置为 DWARF with dSYM File
7.5 应用版本号问题
问题描述:
配置错误:应用版本号不能为空说明:
对于iOS的dSYM文件和Android的SO文件,应用版本号是可选的(工具会从文件中提取UUID)
对于Android的mapping.txt文件和H5的source map文件,必须提供应用版本号
建议始终提供应用版本号,便于在APM控制台中管理和查看
Java版本问题
问题描述:
Error: A JNI error has occurred解决方案:
确保Java版本为8或更高:
java -version如果版本过低,请升级Java运行环境。