Mac系统更新后,cocoapods可能也会出现无法兼容运行的问题。这时候即使重装cocoapods一般也会失败,估计是要依赖更新版本的ruby和gem。每次安装cocoapods的时候感觉都不是那么顺利,不是报这个错就是报那个错,果不其然,我也经历了两天苦逼的不停尝试,终于安装成功了,也摸索了一点经验。
首先,先获取安装ruby的rvm管理器环境,执行以下命令
\curl -sSL https://get.rvm.io | bash -s stable
这时候可能会报以下的错:
Failed to connect toraw.githubusercontent.comport 443: Connection refused
关于这个错误的原因,有人说是DNS解析出了问题,需要修改网络的DNS为114.114.114.114或者8.8.8.8,然后再次执行就可以了,如下图
但我发现这个在我这里并没有起作用,最终是通过修改本地host的映射关系( 就是让raw.githubusercontent.com对应IP199.232.28.133)才解决这个问题。host的修改可以有多种方式,一个是可以直接通过以下执行打开host进行编辑
sudo vim /etc/hosts
在打开的编辑器中加上下面这句
199.232.28.133 raw.githubusercontent.com
修改以后就是下面的界面
因为打开host文件后,要进入编辑状态才能进行修改,这里有必要普及以下vim的一些指令,如下:
i 进入编辑状态
esc 退出编辑状态
:wq 退出文件编辑页面并保存修改
:wq! 强制退出文件编辑页面并保存修改
:q 退出vim编辑页面不保存修改
除了上面直接通过命令打开host文件进行修改以外,还可以使用一个工具SwitchHosts来进行修改,首先要先下载安装SwitchHosts,然后打开软件就可以直接对host文件进行编辑了,如下:
做好隐射关系后,这时候再执行上面的指令就可以正常安装了,不过要确保网络正常,否则可能安装会失败,而且如果不进行科学上网的话也可能安装失败。为了确保安装成功,还是需要稳定的网络环境和科学上网环境,我就是因为之前电脑连接的WiFi不稳定,反反复复折腾了好多次,后面还是直接打开手机的4G网络热点来完成的安装。
其次,要先卸载当前已经安装的ruby版本,可以先通过以下指令查看目前已经安装了哪些版本
rvm list
删除指令,2.6.0指的是要删除的版本号,最好只保留一个版本,版本太多可能也会出问题
sudo rvm remove 2.6.0
如果不想删除,也可以通过以下指令尝试重新安装,说不定也可以解决问题,不过我试着重装,不删除,会报错,所以就干脆直接干掉重新安装
rvm reinstall 2.6.0
如果是删掉后,执行以下指令进行安装,需要注意的是:如果还想兼容RN的话,还需要关注自己当前的环境需要兼容什么样的ruby版本,我开始就是安装好cocoapods以后,去运行RN,结果发现自己安装的ruby是2.5.0的,但是RN却需要2.7.4,结果后面又推到重来一次。
rvm install ruby-2.6.0
安装成功后,指定默认的rvm版本
rvm use 2.6.0 --default
悲剧的是,有时候即使重新安装或者删掉再进行安装rvm还是会报错,这时候可以祭出终极杀招,把所有ruby都删掉,然后把系统中的rvm文件夹也删掉,然后再按照前面的步骤来一遍,这时候基本就可以安装成功ruby了。这个终极杀招的指令是:
rvm implode
implode这个单词的意思是自爆,会把系统rvm目录下的所有ruby版本进行清除,执行该指令后,又要重新执行\curl -sSL https://get.rvm.io | bash -s stable,然后依次进行后面的步骤。
最后,当ruby安装完成以后,执行下面指令更新一下gem
sudo gem update --system
更新gem后,再进行cocoapods的安装
sudo gem install -n /usr/local/bin cocoapods
至此,基本大功告成,建议如果安装ruby的过程中出现一些无法解决的错误,都进行自爆指令操作,然后重新安装。整个过程一定要确保网络稳定,因为有很多错误其实都是因为网络不稳定或者中断导致的,我自己就没少被坑,最后还是坚持用手机4G热点连接电脑才安装成功。