【问题标题】:Fastlane fails on Jenkins google-api-client-0.38.0 requires ruby version ~> 2.4Jenkins google-api-client-0.38.0 上的 Fastlane 失败需要 ruby​​ 版本 ~> 2.4
【发布时间】:2021-03-05 15:32:16
【问题描述】:

作为概念验证,我在我的 MacBook(MacOS 是 Catalina)上成功构建了本地 Jenkins 服务器,并且管道使用 Fastlane 脚本成功克隆、构建和分发。

现在,我的数据中心有一台 Mac 服务器,我完成了相同的构建并安装了 Jenkins。当我运行相同的管道时,它失败了,所以我尝试从命令行执行,但失败并出现以下错误:

google-api-client-0.38.0 requires ruby version ~> 2.4

显然,我的安装使用了 ruby​​ 3.0,所以我按照建议安装 rbenv 并将级别降低到 2.4。安装程序成功,但问题仍然存在并使用 ruby​​ 3.0。我的配置文件中定义的路径看起来是正确的。

我能想到的本地服务器和数据中心服务器之间的两个关键区别可能会影响这个问题:

  • 我的 MacBook 升级到 Catalina,DataCenter iMac 是用 Catalina 全新打造的。请注意,Apple 版本的 ruby​​ 随 Catalina 一起安装。
  • 我没有安装 Xcode,只有 CLI xcode-select version 2373;我希望将 IDE 与此服务器隔离开来,因此不会想在此专用 Jenkins 服务器上修复代码。

有什么建议可以进一步解决这个安装问题吗?

【问题讨论】:

    标签: ruby jenkins macos-catalina fastlane


    【解决方案1】:

    首先,您可能必须安装 Xcode,才能使用它的所有工具(CLI 不会删除它)。我推荐 xcode-install 通过 CLI 管理 xcode 版本。这是您设置的一个关键区别。

    但是,Jenkins 中的 $PATH 环境可能存在一些恶作剧。根据我从您的描述中了解到的情况,您可以通过终端调用它来正常运行 fastlane,但它在 Jenkins 中不起作用,对吗?检查 Jenkins 中的 $PATH 并确保它与终端中的 $PATH 匹配。 rbenv 和其他 ruby​​ 版本管理器要求您执行一些启动代码(例如 eval "$(rbenv init -)" 在 rbenv 的情况下)才能使用它,然后设置正确的 $PATH 以使一切按预期工作(即拥有它指向 Ruby 2.4 而不是 3.0)。

    【讨论】:

    • 实际上,我最终确实必须安装 Xcode - 正如您所建议的那样。我输入的其余路径更改必须出来并重新安装 bundler、fastlane 等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    相关资源
    最近更新 更多