You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure DevOps自动将.dmg文件部署至苹果应用商店

部署MacOS .dmg应用到App Store Connect的Azure DevOps流水线方案

Azure DevOps官方的Apple App Store任务确实仅支持iOS .ipa文件的部署,要自动部署MacOS .dmg应用,需通过自定义脚本任务结合Apple官方命令行工具实现,具体步骤如下:

1. 准备必要凭证与资源

  • 在App Store Connect的「用户与访问」→「密钥」页面,创建App Store Connect API类型的密钥,记录密钥ID、Issuer ID,并下载.p8格式的密钥文件。
  • 将密钥ID、Issuer ID、团队ID(ASC Provider ID)存入Azure DevOps的变量组并标记为保密;将.p8密钥文件上传至Azure DevOps的安全文件库。

2. 配置流水线任务

需使用MacOS代理(托管或自托管,确保已安装Xcode),按顺序添加以下任务:

任务1:下载安全文件

添加「下载安全文件」任务,选择之前上传的.p8密钥文件,设置下载路径为$(Agent.TempDirectory)/authkey.p8,便于后续脚本引用。

任务2:自定义Bash脚本(公证+上传)

添加「Bash脚本」任务,填入以下命令(根据实际路径和变量调整):

# 1. 公证Mac应用(Apple要求Mac应用必须公证才能上架)
xcrun notarytool submit "$(Build.ArtifactStagingDirectory)/YourApp.dmg" \
  --key "$API_KEY_ID" \
  --key-path "$(Agent.TempDirectory)/authkey.p8" \
  --issuer "$ISSUER_ID" \
  --wait

# 2. 将公证结果绑定到dmg文件(可选但推荐,避免用户打开时需联网验证)
xcrun stapler staple "$(Build.ArtifactStagingDirectory)/YourApp.dmg"

# 3. 上传到App Store Connect
xcrun altool --upload-app \
  --file "$(Build.ArtifactStagingDirectory)/YourApp.dmg" \
  --type osx \
  --apiKey "$API_KEY_ID" \
  --apiIssuer "$ISSUER_ID" \
  --asc-provider "$TEAM_ID"
  • $(Build.ArtifactStagingDirectory)/YourApp.dmg替换为你的.dmg文件实际路径
  • API_KEY_ID、ISSUER_ID、TEAM_ID对应Azure DevOps变量组中的保密变量

3. 常见问题排查

  • 权限错误:确保App Store Connect API密钥拥有「App Manager」或更高权限
  • 工具版本问题:使用Xcode 11.3及以上版本,确保notarytool和altool可用
  • 文件路径错误:用ls $(Build.ArtifactStagingDirectory)在脚本开头验证文件是否存在

内容的提问来源于stack exchange,提问作者Wouter van Koppen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 14:01:17