You need to enable JavaScript to run this app. macOS Catalina下通过gem安装、更新fastlane报nil对象缺失request方法错误
优惠活动
大模型
产品
解决方案
定价
更多

macOS Catalina下通过gem安装、更新fastlane报nil对象缺失request方法错误

报错根因

这个undefined method 'request' for nil:NilClass的异常不是fastlane安装包本身的问题,是三类问题叠加触发的:

  1. 当前使用的RubyGems 3.2.3版本存在已知的网络请求初始化逻辑bug,在网络请求实例创建失败时没有做异常拦截,直接尝试调用nil对象的方法抛出错误
  2. 本地Ruby 3.0.0部署在conda非系统路径下,直接加sudo执行gem命令时会触发环境变量错位,系统调用了自带的旧版RubyGems,和当前用户的Ruby运行环境不匹配
  3. macOS Catalina的系统根证书默认不被Ruby 3.0.0的OpenSSL模块识别,会直接导致网络请求实例创建失败返回nil
分步修复操作
  • 第一步:升级RubyGems到兼容版本,不要用sudo执行系统级更新,直接在当前用户环境下运行:
gem update --system 3.3.22

不建议直接升级到最新版RubyGems,3.3.22是对Ruby 3.0.0兼容性最稳定的版本,不会引发新的依赖冲突

  • 第二步:修复环境错位问题,不要直接加sudo执行gem命令。先通过which gem获取当前用户环境下gem的完整可执行路径,再用sudo调用这个完整路径执行安装/更新操作,比如:
# 先查gem的实际路径
which gem
# 假设输出为 /Users/yourname/.conda/envs/ruby3/bin/gem
# 替换成这个完整路径执行安装,不要直接用sudo gem
sudo /Users/yourname/.conda/envs/ruby3/bin/gem install fastlane -v 2.177.0
# 更新操作同理替换路径
sudo /Users/yourname/.conda/envs/ruby3/bin/gem update fastlane
  • 第三步:修复SSL证书识别问题,重新初始化Gem源:
gem sources --remove https://rubygems.org/
gem sources -a https://rubygems.org/
  • 如果执行后仍报相同错误,可以用临时关闭SSL校验的方式快速验证是否是证书链问题导致的请求失败:
gem install fastlane -v 2.177.0 --ssl-verify-mode 0

该参数仅用于排障,问题确认修复后不要长期关闭SSL校验,避免安全风险

  • 排障前如果存在之前安装损坏的fastlane残留文件,先全部清除再操作:
gem uninstall fastlane --all --executables
长期使用建议
  • 尽量不要在conda base环境下维护Ruby开发环境,推荐用rbenv、chruby这类专用的Ruby版本管理工具独立部署环境,避免conda环境和系统环境的PATH变量交叉污染,减少sudo执行时的路径错位问题
  • 不要随意跨大版本升级RubyGems,优先选择和当前Ruby版本匹配的稳定分支版本,减少触发已知逻辑bug的概率

内容的提问来源于stack exchange,提问作者Dolphin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.30 17:06:03