Azure pipeline:为OSX创建具有arm和intel支持的通用构建



我正在尝试构建一个通用的应用程序,既可以在arm上运行,也可以在Mac上运行。现在,虽然我可以手动设置-arch标志,但我在Azure pipeline上找不到这种可能性。我试过添加arch: "arm64",但触发了x86_64构建。

- task: Xcode@5
displayName: 'Build App'
inputs:
actions: 'archive'
scheme: 'app'
sdk: '$(sdk)'
configuration: '$(buildConfiguration)'
xcWorkspacePath: '$(xcodeproj)'
xcodeVersion: 'default' # Options: 10, 11, 12, default, specifyPath
signingOption: 'manual'
signingIdentity: '$(CERT)'
teamId: $(TeamID)
args: 'DSTROOT="$(BuildRoot)"'
arch: "arm64"

如何为M1构建?

按op的要求。

你需要在'args'形参中传递额外的参数给任务:

- task: Xcode@5
displayName: 'Build App'
inputs:
actions: 'archive'
scheme: 'app'
sdk: '$(sdk)'
configuration: '$(buildConfiguration)'
xcWorkspacePath: '$(xcodeproj)'
xcodeVersion: 'default' # Options: 10, 11, 12, default, specifyPath
signingOption: 'manual'
signingIdentity: '$(CERT)'
teamId: $(TeamID)
args: '-arch arm64 DSTROOT="$(BuildRoot)"'

:如果你想要一个通用的构建是这样的:

- task: Xcode@5
displayName: 'Build App'
inputs:
actions: 'archive'
scheme: 'App'
sdk: '$(sdk)'
configuration: '$(buildConfiguration)'
xcWorkspacePath: '$(xcodeproj)'
xcodeVersion: 'default' # Options: 10, 11, 12, default, specifyPath
signingOption: 'manual'
signingIdentity: '$(CERT)'
teamId: $(TeamID)
args: 'DSTROOT="$(BuildRoot)" ARCHS="x86_64 arm64"'

最新更新