首页 > 解决方案 > Fastlane Scan 的构建过程错过了 Jenkins CI 上的 CocoaPod 框架

问题描述

我们在我们的应用程序中使用 Fastlane 在 Jenkins CI 环境中运行测试。该test通道一直运行良好,直到几天前突然间,由于构建过程跳过了 Firebase pod,我们的大多数测试运行开始失败,这导致项目中涉及 Firebase 的每个类都无法编译。据我们所知,当时项目文件没有发生任何变化,并且测试通道在我们的本地环境中仍然可以完美运行。

注意:清除 CI 服务器上的 Cocoapod 缓存似乎可以暂时解决问题,但它很快就会返回。我宁愿不把它作为构建过程的一部分,因为下载 Cocoapods 存储库非常耗时,并且如果我们在每次 CI 运行时都这样做会占用大量带宽。

有谁知道什么可能导致xcodebuildJenkins 服务器上的 Fastlane 调用的行为与本地不同?

标签: iosfirebasejenkinscocoapodsfastlane

解决方案


好吧,我们找到了两个部分的解决方案:

  1. 我们将构建框限制为一次仅处理一个 CI 请求。它同时运行了 2 个,我们怀疑这可能会导致 cocoapods 出现问题,并导致我们的测试套件中超时失败的发生率更高。
  2. 我们删除了所有新的失败构建的 Jenkins 工作区文件夹并重新运行了构建。这似乎普遍解决了这个问题。我们目前正在尝试让每个 Jenkins 运行删除工作区文件夹作为它的第一个操作,因为我们不需要旧的工件作为我们 CI 过程的一部分,只需要最后一个测试操作的产品。

推荐阅读