如何解决Fastlane 在 Jenkins 上失败 google-api-client-0.38.0 需要 ruby 版本 ~> 2.4
作为概念证明,我在我的 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 服务器上修复代码。
有什么建议可以进一步解决此安装问题?
解决方法
首先,您可能将必须安装 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)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。