You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何隐藏使用最新版CocoaPods时出现的Ruby警告?

如何隐藏CocoaPods 1.9.1的过时警告?

我太懂这种执行pod install就被满屏警告刷屏的烦躁了!这些警告都是因为CocoaPods 1.9.1和Ruby 2.7+版本的API不兼容导致的,下面给你几个实用的解决办法:

方法一:临时忽略警告(单次生效)

执行pod install时带上Ruby的警告忽略参数,直接在命令前添加环境变量:

RUBYOPT="-W:no-deprecated -W:no-experimental" pod install

这个命令会告诉Ruby忽略过时API和实验性特性的警告,一次性解决你遇到的两类警告问题。

方法二:永久解决(升级CocoaPods)

最彻底的办法是升级到修复了这些兼容问题的CocoaPods版本,比如1.10.0及以上版本,执行以下命令升级:

gem install cocoapods

升级后这些过时API的警告就会彻底消失,因为新版本已经替换了Ruby 2.7不再支持的方法。

方法三:手动修改CocoaPods源码(不推荐)

如果你暂时不想升级,可以手动修改CocoaPods的源码文件来消除警告:

  • 针对URI.escape已过时警告:找到路径/usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/cdn_source.rb的第337行,把URI.escape替换为URI.encode_www_form_component
  • 针对关键字参数警告:找到路径/usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/downloader/cache.rb的对应行,在调用方法时添加**关键字参数(比如第114行和第100行的调用处)

不过这个方法的缺点很明显,后续升级CocoaPods时修改会被覆盖,而且手动改源码容易出错,所以优先推荐前两种方法。


你遇到的警告示例:

Analyzing dependencies
/usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/cdn_source.rb:337: 警告:URI.escape已过时
/usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-core-1.9.1/lib/cocoapods-core/cdn_source.rb:337: 警告:URI.escape已过时
...
/usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/downloader/cache.rb:114: 警告:使用最后一个参数作为关键字参数已被弃用;建议在调用时添加**
/usr/local/lib/ruby/gems/2.7.0/gems/cocoapods-1.9.1/lib/cocoapods/downloader/request.rb:61: 警告:被调用方法`slug`定义于此

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 15:02:40