Azure管道:为OSX创建通用构建,并同时使用ARM和Intel支持

发布于 2025-02-05 12:35:51 字数 678 浏览 2 评论 0原文

我正在尝试构建一个通用应用程序,该应用程序既可以在Mac上都在ARM和Intel上运行。 现在,尽管我可以手动设置-ark标志,但我在Azure Pipelines上找不到这种可能性。 我通过添加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构建?

I am trying to build a universal application that runs both on arm and intel on Mac.
Now while I can set the -arch flag manually I do not find that possibility on Azure Pipelines.
I tried this by adding arch: "arm64" but a x86_64 build was triggered.

    - 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"

How can I build for M1?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薯片软お妹 2025-02-12 12:35:52

根据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)"'

update
如果您想要通用构建,情况将会如此:

- 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"'

As requested by OP.

You need to pass the additional arguments to the task in the 'args' parameter:

  - 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)"'

UPDATE:
If you want a universal build this would be the case:

- 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"'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文