升级Xcode14后pod install报错

解决这个问题其实已经有一段时间了,但最近换了一台电脑又遇上了同样的问题,重新把资料又查了一遍......
为了避免再次出现这种拍断大腿的事情,这里把原因,解决思路和步骤都记录一遍,以供自己查询和大家参考。

原因

先看错误:
Xcode14:

proj] Unknown object version (56). (RuntimeError)
    11: from /Users/xxx/.rvm/gems/ruby-2.7.0/bin/ruby_executable_hooks:24:in `
' 10: from /Users/xxx/.rvm/gems/ruby-2.7.0/bin/ruby_executable_hooks:24:in `eval' 9: from /Users/xxx/.rvm/gems/ruby-2.7.0/bin/pod:23:in `
' 8: from /Users/xxx/.rvm/gems/ruby-2.7.0/bin/pod:23:in `load'

Xcode14.1

Ignoring ffi-1.14.2 because its extensions are not built. Try: gem pristine ffi --version 1.14.2
Analyzing dependencies
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/user_interface/error_report.rb:34:in `force_encoding': can't modify frozen String (FrozenError)

实际的原因就是Ruby的版本低了,我们都知道CocoaPods是用Ruby写的,那这里我们就需要去升级Ruby的版本,升级Ruby的版本需要先安装RVM......

解决思路

OK ,由此我们得出
pod install失败的原因:masOS系统自带的Ruby版本过低
解决方案:手动升级Ruby版本(这里是升级到目前的最新版本3.0.0)

步骤

1.安装RVM(Ruby Version Manager)

1.1:命令行安装

curl -L get.rvm.io | bash -s stable 

如果收获如下报错:

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

不要慌,原因不可描述,If you know, you know。
方案一:打开你的梯子,如果还是报错,那么请看方案二
方案二:如果开了梯子也没有用,那么可能就是域名解析也被污染了,我们就只有去修改主机文件了,也就是host文件,把某个域名强制解析到固定的IP。命令就不水字数了,常用vim的同学肯定都会,不常用的打开了你也不一定会退出。有兴趣的自己Search即可。这里推荐一个好用的工具SwitchHosts。他在Github上开源,直接下编译好的安装包即可:https://github.com/oldj/SwitchHosts/releases
现在我们需要拿到raw.githubusercontent.com这个域名的IP,可以通过这个网站查询https://www.ipaddress.com。
目前它的IP是199.232.68.133,在host中添加如下内容:
199.232.68.133 raw.githubusercontent.com
然后继续执行RVM的安装命令即可,如果超时就多执行几次,如果下载比较慢就稍等。
1.2:配置RVM环境变量
安装完成后,你在终端会看到两句提示:

To start using RVM you need to run `source /Users/你的电脑用户名/.rvm/scripts/rvm`
in all your open shell windows, in rare cases you need to reopen all shell windows.

意思是你要先执行source /Users/你的电脑用户名/.rvm/scripts/rvm,然后重启终端。(Tips:如果不想重启,直接刷新环境变量即可source ~/.bash_profile。如果你还没有.bashrc|.bash_profile|.profile|.zshrc这些文件中的任意一个,那么需要先创建,请自行Search)
查看RVM版本号,如果成功执行,意味着已经安装成功。

rvm -v

2:升级Ruby

查看Ruby的最新版本(目前是3.0.0)

rvm list known

安装查到的最新版本

rvm install 3.0.0

下载完成后查看是否安装成功

rvm list

看到最新的版本(目前是3.0.0)即为成功,然后切换默认版本为 3.0.0.

rvm use 3.0.0 --default

执行 rvm list查看一下是否切换成功,看到如下结果即算成功。

=* ruby-3.0.0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

3:重新下载CocoaPods

切换了Ruby,所以要重新下载CocoaPods

查看本地已安装的CocoaPods版本

gem list --local | grep cocoapods

重新安装CocoaPods

sudo gem install cocoapods

再执行一下gem list --local | grep cocoapods,如果看到pod版本已经是最新的就已经OK。

cocoapods (1.11.3)
cocoapods-core (1.11.3)
cocoapods-deintegrate (1.0.5)
cocoapods-downloader (1.6.3)
cocoapods-plugins (1.0.0)
cocoapods-search (1.0.1)
cocoapods-trunk (1.6.0)
cocoapods-try (1.2.0)

到这里就升级结束,可以去正常使pod。如果有遇上其他报错的,可以私信。

你可能感兴趣的:(升级Xcode14后pod install报错)