尽管使用了工作区,但 Azure Pipeline '没有这样的模块'

Posted

技术标签:

【中文标题】尽管使用了工作区,但 Azure Pipeline \'没有这样的模块\'【英文标题】:Azure Pipeline 'No such module' despite using workspace尽管使用了工作区,但 Azure Pipeline '没有这样的模块' 【发布时间】:2019-07-10 20:49:35 【问题描述】:

尝试在 Azure-Pipeline 中构建 Xcode 项目(使用 cocoa pods),但尽管选择了工作区却得到了no such module

尝试使用命令在本地构建,成功。尝试在 yml 中设置不同的变量,没有帮助。

使用此命令在本地工作,但在 azure 中失败

xcodebuild -sdk iphonesimulator -configuration Debug -workspace iosApp/iosApp.xcworkspace -scheme iosApp clean build

YML 是这样的

  - script: /usr/local/bin/pod deintegrate
    workingDirectory: 'iosApp'
    displayName: 'pod deintegrate'

  - script: /usr/local/bin/pod install
    workingDirectory: 'iosApp'
    displayName: 'pod install'

  - task: Xcode@5
    inputs:
      actions: 'clean build'
      scheme: 'iosApp'
      sdk: 'iphonesimulator'
      configuration: 'Debug'
      workingDirectory: 'iosApp'
      xcWorkspacePath: 'iosApp/iosApp.xcworkspace'
      xcodeVersion: 'default'
      displayName: 'Building For iOS'

编辑:

仍然无法正常工作,但是我意识到有问题的模块具有与之关联的路径,这意味着它是本地的。 IE。 pod 'Alamofire', :path => '~/Documents/Alamofire'

这可能是问题的一部分,因为包含的其他 pod 似乎正在工作。

【问题讨论】:

您好,有同样的问题。这事有进一步更新吗?欣赏 【参考方案1】:

这个问题似乎是由xcode 任务在正确的工作区路径上不起作用引起的。

您可以尝试将xcWorkspacePath 的值更新为ProjectName.xcworkspace。就像示例显示的那样,从您的脚本中修改了以下内容:

- task: Xcode@5
    inputs:
      actions: 'clean build'
      scheme: 'iosApp'
      sdk: 'iphonesimulator'
      configuration: 'Debug'
      workingDirectory: 'iosApp'
      xcWorkspacePath: 'ProjectName.xcworkspace'
      xcodeVersion: 'default'
      displayName: 'Building For iOS'

这里有另一个参考:Build error in Xcode on cloud-hosted Mac on VSTS

【讨论】:

我不相信这是问题所在,因为我已经在 Azure 中尝试过,但我得到了另一个错误 The Xcode workspace was specified, but it does not exist or is not a directory。我认为问题可能在于相关模块是本地的并且具有关联的本地路径。 pod install 脚​​本是否已执行,.xcworkspace 文件是否正在编译? 我有脚本任务到pod install,根据流水线运行成功。

以上是关于尽管使用了工作区,但 Azure Pipeline '没有这样的模块'的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Azure DevOps Pipeline 读取 Azure 文件共享文件

如何使用 Azure Pipeline 将 Docker 映像“推送”到 Azure 容器注册表?

如何在 Azure Pipeline 中为 iOS 版本使用自动预配

需要使用 For 循环而不是 Azure Pipeline Template yaml 中的每个循环

在 azure 后端存储中使用状态文件将 terraform 的输出传递到 Azure Devops Pipeline

在群集上运行网格搜索 CV 时 Azure ML Pipeline 失败