Fastlane 不断警告我正在使用 Ruby 2.2.4

Posted

技术标签:

【中文标题】Fastlane 不断警告我正在使用 Ruby 2.2.4【英文标题】:Fastlane keeps warning that I am using Ruby 2.2.4 【发布时间】:2019-08-19 16:29:42 【问题描述】:

我已经通过rvm 更新到 Ruby 2.5.5,但我仍然收到来自 Fastlane 的警告。就上下文而言,我正在 Max OSX 上构建一个 ios 应用程序,并通过自制软件 brew cask install fastlane 安装了 Fastlane。我在网上和 github repo 中搜索了 Fastlane,但找不到真正的解决方案。

$ ruby -v
ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-darwin18]

这是 Fastlane 的输出

这里有一个 ruby​​ 2.2.4,我假设 Fastlane 正在使用它,但我不清楚升级它的正确方法是什么,或者我是否有一些环境变量可以设置让 Fastlane 选择较新的版本。

~/.fastlane/bin/bundle/bin/ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin15]

如何让 Fastlane 选择正确版本的 Ruby?

或者,这些警告是否可以安全忽略?

编辑: 这是我的fastlane env 堆栈

| --------------------------- | ------------------------------------------- |
| OS                          | 10.14.6                                     |
| Ruby                        | 2.2.4                                       |
| Bundler?                    | false                                       |
| Git                         | git version 2.22.0                          |
| Installation Source         | ~/.fastlane/bin/bundle/bin/fastlane         |
| Host                        | Mac OS X 10.14.6 (18G87)                    |
| Ruby Lib Dir                | ~/.fastlane/bin/bundle/lib                  |
| OpenSSL Version             | OpenSSL 1.0.2g  1 Mar 2016                  |
| Is contained                | false                                       |
| Is homebrew                 | true                                        |
| Is installed via Fabric.app | false                                       |
| Xcode Path                  | /Applications/Xcode.app/Contents/Developer/ |
| Xcode Version               | 10.3                                        |

【问题讨论】:

fastlane env 给你什么?这应该表明 Fastlane 至少在哪里寻找 Ruby。 你是如何执行你的车道的 - 你在运行什么命令? 我在上面添加了fastlane env。我正在运行fastlane ios alphaalpha 是我在 Fastfile 中定义的车道名称。这回答了你的问题吗? 我的理解是 Homebrew 安装方法捆绑了那个版本的 Ruby。您是否尝试过从 Homebrew 卸载并使用 RubyGems 重新安装? github.com/fastlane/fastlane/issues/14212 您可以使用 Homebrew 或 RVM 管理 Ruby - 它们不会混合使用。 【参考方案1】:

当您通过自制软件安装 fastlane 时,它​​包含自己的 ruby​​ 版本,正如您所见。但是,如果您通过gem install fastlane 安装 fastlane,它将从rvm 获取 ruby​​ 版本。所以这种情况下的解决方案是卸载fastlane,重新安装为gem。完成后,您可以再次运行 fastlane env,您应该会看到它获取了预期的 ruby​​ 版本。

感谢this thread 上的人的回答。

希望对您有所帮助。

【讨论】:

【参考方案2】:

我最近几天都在用这个,因为它不会更新 fastlane,这就是我能够修复它的方法。这是我发现的以及我所做的对我有用的事情

使用 sudo 命令运行 install 和 gem 命令会将其放入 usr/local/bin 文件夹中,并且您必须具有 root 权限才能更新 fastlane,而您不希望这样。 Brew 捆绑了一个不正确的 ruby​​ 版本,它也不会让你更新。我最终得到了两个我需要摆脱的安装,然后以正确的方式完成工作。我正在运行 Catalina,所以我需要更改我的 ~/.zshrc 文件,但我认为更改 ~/.profile~/.bash_profile 应该对旧版本的 OSX 执行相同的操作。

您可能不必做所有这些,我昨天很生气,最终安装了多个。如果其中一些内容不存在或出错,请注意。

这是我所做的:

我从 brew brew cask uninstall fastlane 卸载了 fastlane

然后我进入我的用户文件夹并删除了.fastlane 文件夹

我运行fastlane env 来捕捉我的第二次安装并查看了Installation Source 并从该位置删除了fastlane 命令。

然后我运行 fastlane 并没有找到命令

现在编辑您的 bash 或 zshrc 文件以添加

export PATH=$PATH:~/.gems/bin
export GEM_HOME=~/.gems

保存,关闭并重启终端

运行gem install fastlane -NV。不要使用须藤!它安装回 usr/local/bin 并且您不希望这样。如果您这样做,fastlane 将无法更新

安装完成后,运行fastlane env 并确保安装位置在~/.gems/.. 中,如果需要,运行fastlane update_fastlane 以确保您收到Nothing to Update 消息,而不是担心需要sudo。

希望这有效或对其他人有所帮助。

【讨论】:

以上是关于Fastlane 不断警告我正在使用 Ruby 2.2.4的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Ruby 测试 Fastlane 中的目录是不是已存在

Fastlane 注释掉字符串中的引号

iOS使用fastlane自动化打包到fir(最全最详细流程)

[fastlane] [gem] [rvm] [ruby]

iOS中使用Fastlane实现自动化打包和发布

Fastlane 快照警告“无法安装 DeveloperDiskImage”