本文演示了如何通过Xcode集成自动化上传符号表工具。
前提条件
在开始配置之前,请确保:
已安装 CLI 工具:参考命令行工具上传符号表完成命令行工具的下载和安装
已获取阿里云凭证:参考创建AccessKey获取 AccessKey
Xcode 构建设置正确:确保 dSYM 文件能够正常生成
检查 Xcode dSYM 生成设置
打开 Xcode 项目
选择项目 Target → Build Settings
搜索
Debug Information Format确保 Release 配置下设置为
DWARF with dSYM File
添加脚本
使用 Run Script Build Phase
这是最常用的方式,在每次构建完成后自动执行上传脚本。
步骤1:添加 Run Script Phase
在 Xcode 中选择您的项目
选择需要配置的 Target
点击 Build Phases 标签页
点击左上角的 + 按钮,选择 New Run Script Phase
将新创建的 Run Script 拖动到 Embed Frameworks 之后(确保在构建完成后执行)
步骤2:配置脚本
在 Run Script 的 Shell 脚本区域中,粘贴以下脚本:
#!/bin/bash
# ============================================================
# 阿里云 APM dSYM 自动上传脚本
# ============================================================
# APM 应用 Key(从阿里云 EMAS 控制台获取)
APM_APP_KEY="YOUR_APP_KEY"
# 阿里云 AccessKey(建议使用环境变量,见下方说明)
# 如果使用环境变量,请注释掉以下两行
ALIBABA_CLOUD_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID"
ALIBABA_CLOUD_ACCESS_KEY_SECRET="YOUR_ACCESS_KEY_SECRET"
# CLI 工具路径(根据实际安装位置修改)
CLI_PATH="/usr/local/bin/alibabacloud-apm-cli"
# ------------------------------------------------------------
# 仅在 Release 构建时执行
if [ "${CONFIGURATION}" != "Release" ]; then
echo "跳过 dSYM 上传:当前为 ${CONFIGURATION} 构建"
exit 0
fi
# 检查 CLI 工具是否存在
if [ ! -f "${CLI_PATH}" ]; then
echo "错误:找不到 APM CLI 工具:${CLI_PATH}"
echo "请先安装工具:https://help.aliyun.com/document_detail/apm-cli"
exit 1
fi
# 获取 dSYM 路径
DSYM_PATH="${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
# 检查 dSYM 是否存在
if [ ! -d "${DSYM_PATH}" ]; then
echo "错误:找不到 dSYM 文件:${DSYM_PATH}"
exit 1
fi
echo "开始上传 dSYM 文件..."
echo " 路径:${DSYM_PATH}"
# 执行上传
"${CLI_PATH}" \
--app-key "${APM_APP_KEY}" \
--access-key-id "${ALIBABA_CLOUD_ACCESS_KEY_ID}" \
--access-key-secret "${ALIBABA_CLOUD_ACCESS_KEY_SECRET}" \
--platform ios \
--file-path "${DSYM_PATH}"
# 检查上传结果
if [ $? -eq 0 ]; then
echo "dSYM 上传成功"
else
echo "dSYM 上传失败"
# 注意:这里使用 exit 0 是为了不阻塞构建流程
# 如果希望上传失败时中断构建,请改为 exit 1
exit 0
fi如果使用环境变量需要删除脚本中对应的参数定义与执行时的传参
步骤3:配置脚本选项
在 Run Script Phase 中,进行以下配置:
取消勾选
Based on dependency analysis(确保每次构建都执行)勾选
For install builds only(仅在 Archive 时执行,可选)在 Input Files 中添加:
$(DWARF_DSYM_FOLDER_PATH)/$(DWARF_DSYM_FILE_NAME)
步骤4:配置环境变量(可选)
为了安全起见,建议不要在脚本中硬编码 AccessKey。您可以通过以下方式配置环境变量:
点击你的 Project -> Targets -> Build Settings
点击上方的 + 号,选择 Add User-Defined Setting
添加以下环境变量:
ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRETAPM_APP_KEY
验证上传结果
查看命令行输出:成功上传会显示
dSYM 上传成功或类似信息登录EMAS管理控制台,选择应用监控,点击进入,进入到应用监控控制台。
选择符号表管理
