安装cocoapods1.11.3
因为一些原因,必须使用cocoapods1.11.3版本,安装cocoapods时,终端执行
sudo gem install cocoapods -v 1.11.3
报错:
ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 directory.
然后各种尝试修改/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0
的权限,依然不行,原因是这个目录/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0被系统挂载了只读权限,即使关了SIP依然修改不了权限。
使用
sudo gem install -n /usr/local/bin cocoapods -v 1.11.3
命令安装,依然提示没有写权限。
==========================================
考虑使用homebrew安装,终端执行
brew install cocoapods
安装成功。
执行pod --version
,是最新的1.12.1版本,我这用不了。查资料发现brew现在不能安装指定版本的cocoapods了
admin@bogon ios-zhaopin % brew search cocoapods
==> Formulae
cocoapods
==> Casks
cocoapods
现在好像是无解了。
但是别慌,既然ruby 2.6.0版本用不了,那我用其他版本呢,接下来就是安装其他版本的ruby,管理多个ruby版本,可以使用rbenv。
安装rbenv,执行命令
brew install rbenv
在终端中运行以下命令来初始化rbenv:
rbenv init
将rbenv添加到shell配置文件中。在终端中运行以下命令:
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
注意:如果你使用的是Bash shell,请将上述命令中的.zshrc替换为.bash_profile。
重新加载你的shell配置文件。在终端中运行以下命令:
source ~/.zshrc
到此为止,rbenv就安装成功了。接下来是安装不同版本的ruby。
安装其他版本的ruby
在终端中运行以下命令来列出可用的Ruby版本:
rbenv install -l
输出:
3.0.6
3.1.4
3.2.2
jruby-9.4.3.0
mruby-3.2.0
picoruby-3.0.0
truffleruby-23.0.0
truffleruby+graalvm-23.0.0
Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.
然后选择你想要安装的Ruby版本,可以运行以下命令:
rbenv install 3.0.0
然后设置全局默认Ruby版本,在终端中运行以下命令来设置全局默认Ruby版本:
rbenv global 3.0.0
然后关闭当前终端,打开一个新的终端页面,输入
admin@bogon ~ % ruby -v
输出:
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [arm64-darwin22]
admin@bogon ~ %
现在ruby3.0.0版本安装成功。接下来就可以安装cocoapods1.11.3了
继续安装cocoapods
继续安装
执行
gem install cocoapods -v 1.11.3
等待安装成功即可,接下来执行一下
pod setup
终端提示:
Setup completed
如果执行pod setup报错:undefined method `deprecator' for ActiveSupport:Module (NoMethodError),可参考文章:https://www.jianshu.com/p/cdd6192ba9d8,如果没有,继续往下。
查看一下pod版本
admin@bogon ~ % pod --version
1.11.3
安装成功。