在CmdLine@2任务中设置Azure DevOps管道中的Xcode版本

iqxoj9l9  于 2022-12-19  发布在  其他
关注(0)|答案(2)|浏览(82)

我在azure DevOps管道中使用CmdLine@2任务并尝试构建应用,但不幸的是Xcode构建作业失败。我使用的SwiftUI类至少需要使用Xcode 12.5构建,但azure DevOps代理使用的是Xcode 12.4版本,这导致了失败。我如何仍使用CmdLine@2任务来确定Xcode版本?
下面是.yml的代码:

- task: CmdLine@2
  displayName: 'Xcode Build'
  inputs:
    script: |
      echo "Build iOS app"
      cd $(Build.SourcesDirectory)

      /usr/bin/xcodebuild -workspace '$(workspace)' -scheme '$(schemeName)' build -allowProvisioningUpdates CODE_SIGN_STYLE=Manual DEVELOPMENT_TEAM='$(developmentTeam)' CODE_SIGN_IDENTITY='$(signingIdentity)' APP_PROFILE='$(***Profile)' EXTENSION_PROFILE_FW='$(***FavWidProvProfile)' EXTENSION_PROFILE_NCW='$(***NCWidProvProfile)'

我使用CmdLine任务,因为当前版本的Xcode@5任务在构建具有多个App扩展的应用程序方面存在限制。

vsmadaxz

vsmadaxz1#

根据您正在使用的代理,检查自述文件以查看每个Xcode版本的位置,例如macos-11然后在构建之前使用xcode-select选择您想要的版本
示例:
sudo xcode-select -s /Applications/Xcode_12.5.1.app

cwxwcias

cwxwcias2#

由于Azure管道使用MD_APPLE_SDK_ROOT定义当前选定的Xcode版本,因此接受的答案不再有效。
以下是将Xcode版本设置为14.1.0的CmdLine@2步骤。在Azure Pipeline配置中,将14.1.0替换为要设置为默认版本的Xcode版本。

- task: CmdLine@2
        displayName: 'Set Xcode v14.1.0'
        condition: eq(variables['Agent.OS'], 'Darwin') # Only run this step on macOS
        inputs:
          script: echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'/Applications/Xcode_14.1.0.app;sudo xcode-select --switch /Applications/Xcode_14.1.0.app/Contents/Developer

相关问题