iOS问题记录 - CocoaPods is installed but broken(续)

文章目录

  • 前言
  • 开发环境
  • 问题描述
  • 问题分析
  • 解决方案
  • 总结
  • 最后


前言

如果上篇文章没能解决你的问题,那可以试试这篇文章的解决方案。

开发环境

  • Xcode: 14.0.1
  • Cocoapods: 1.11.3
  • Fastlane: 2.210.1
  • Ruby: 2.6.8p205

问题描述

执行pod install命令报错提示:

Warning: CocoaPods is installed but broken. Skipping pod install.
You appear to have CocoaPods installed but it is not working.
This can happen if the version of Ruby that CocoaPods was installed with is different from the one being used to invoke it.
This can usually be fixed by re-installing CocoaPods.
To re-install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.

CocoaPods not installed or not in valid state.

问题分析

具体分析过程请看上篇文章。总的来说,是因为Ruby的版本有问题。

解决方案

不同于上篇文章的解决方案,这次通过RVM来管理多个Ruby版本,以此来解决Ruby的版本问题。

首先安装RVM,打开RVM官网,可以看到安装步骤已经列出来了。

图中第一步是设置一个密钥,这个其实就是RSA加密里的公钥,用来验证软件的签名,避免下载的软件被人篡改。

设置密钥前需要先装一个GnuPG,不然你是找不到gpg2命令的。如果你已经在电脑上安装过,那么请跳过这一步。这边安装GnuPG有两种方式,一是在GnuPG官网下载页下载对应系统版本后安装,二是通过Homebrew安装。由于我已经安装了Homebrew,所以通过第二种方式安装。

安装GnuPG

brew install gnupg

通过上方命令安装的GnuPG是最新版本(当前最新版本是2.3.8,也就是v2版本),使用下方命令安装也是一样的效果:

brew install gnupg2

设置密钥:

gpg --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

这边和官网提供的安装命令有点不同,这是因为当前brew命令默认安装的版本就是最新的v2版本,所以命令的名称是gpg,使用gpg2是找不到命令的。如果设置密钥失败,可能这篇文章GnuPG问题记录 - keyserver receive failed: Network is unreachable会对你有所帮助。

安装RVM

\curl -sSL https://get.rvm.io | bash -s stable

如果安装过程中遇到以下问题:

curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 3 ms: Connection refused

可以尝试修改hosts文件解决,具体请看这篇文章。

到此RVM就安装完成啦,安装成功后一般不需要手动配置环境变量,会自动配置,可以关闭当前命令窗口重新打开让新增的环境变量生效。如果你是为了Ruby on Rails这个Web开发框架而安装RVM,那安装命令要换成下方这个:

\curl -sSL https://get.rvm.io | bash -s stable --rails

接下来看看有什么Ruby版本可以安装:

rvm list known

执行输出(省略部分,太长了):

# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.10]
[ruby-]2.3[.8]
[ruby-]2.4[.10]
[ruby-]2.5[.8]
[ruby-]2.6[.6]
[ruby-]2.7[.2]
[ruby-]3[.0.0]
ruby-head

# for forks use: rvm install ruby-head- --url https://github.com/github/ruby.git --branch 2.2

# JRuby
jruby-1.6[.8]
jruby-1.7[.27]
jruby-9.1[.17.0]
jruby[-9.2.14.0]
jruby-head

...

MRI是用C语言写的解释器,JRuby是用JAVA写的解释器,一般选MRI的解释器安装就行了。

安装3.0版本的Ruby:

rvm install ruby-3.0.0

安装完成后看看当前的Ruby版本:

ruby -v

执行输出:

ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin21]

Ruby版本没问题,但是因为换了运行环境,所以需要重新安装CocoapodsFastlane才能进行iOS打包。

安装Cocoapods

gem install cocoapods

安装Fastlane

gem install fastlane

到此,这个问题的另一种解决方案就写完啦。

总结

生命在于折腾。

最后

如果这篇文章对你有所帮助,请不要吝啬你的点赞加星,谢谢~

你可能感兴趣的:(问题记录,ios,cocoapods,ruby)