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

Azure Pipelines如何构建支持arm与Intel架构的OSX通用应用

问题根因

Xcode@5 任务不存在arch这个内置输入参数,你写在inputs块里的arch: "arm64"会被任务直接忽略,根本不会传递给底层的xcodebuild命令,所以构建流程始终默认输出x86_64架构产物。

正确配置方式

所有传给xcodebuild的自定义参数,都要写到args字段里,不要自行在inputs下添加任务不识别的字段。

仅构建Apple Silicon(arm64)版本

修改任务配置如下,重点是把架构参数追加到args中,同时关闭仅构建当前架构的开关:

- task: Xcode@5
  displayName: 'Build App'
  inputs:
    actions: 'archive'
    scheme: 'app'
    sdk: '$(sdk)'
    configuration: '$(buildConfiguration)'
    xcWorkspacePath: '$(xcodeproj)'
    xcodeVersion: 'default'
    signingOption: 'manual'
    signingIdentity: '$(CERT)'
    teamId: $(TeamID)
    args: 'DSTROOT="$(BuildRoot)" ARCHS="arm64" ONLY_ACTIVE_ARCH=NO'

必须显式设置ONLY_ACTIVE_ARCH=NO,否则如果你的构建Agent是Intel架构的Mac,Xcode会默认覆盖架构参数,只编译x86_64版本。

构建同时支持Intel + Apple Silicon的通用应用

如果要一次编译出双架构通用二进制,直接修改args里的ARCHS参数即可:

args: 'DSTROOT="$(BuildRoot)" ARCHS="arm64 x86_64" ONLY_ACTIVE_ARCH=NO'

输出的安装包可以同时在Intel芯片和M系列芯片的Mac上原生运行。

注意事项

如果项目集成了CocoaPods、Swift Package等第三方依赖,需要确认所有依赖都支持目标架构。使用CocoaPods的话,需要在Podfile中添加配置,让Pods工程的ARCHS、ONLY_ACTIVE_ARCH参数和主项目保持一致,否则会出现链接阶段架构缺失的报错。

内容的提问来源于stack exchange,提问作者Silve2611

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 01:24:32