解決這個(gè)問(wèn)題其實(shí)已經(jīng)有一段時(shí)間了豌拙,但最近換了一臺(tái)電腦又遇上了同樣的問(wèn)題,重新把資料又查了一遍......
為了避免再次出現(xiàn)這種拍斷大腿的事情,這里把原因胡嘿,解決思路和步驟都記錄一遍,以供自己查詢和大家參考钳踊。
原因
先看錯(cuò)誤:
Xcode14:
proj] Unknown object version (56). (RuntimeError)
11: from /Users/xxx/.rvm/gems/ruby-2.7.0/bin/ruby_executable_hooks:24:in `<main>'
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 `<main>'
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)
實(shí)際的原因就是Ruby
的版本低了衷敌,我們都知道CocoaPods
是用Ruby
寫的勿侯,那這里我們就需要去升級(jí)Ruby
的版本,升級(jí)Ruby
的版本需要先安裝RVM
......
解決思路
OK ,由此我們得出
pod install
失敗的原因:masOS系統(tǒng)自帶的Ruby
版本過(guò)低
解決方案:手動(dòng)升級(jí)Ruby
版本(這里是升級(jí)到目前的最新版本3.0.0)
步驟
1.安裝RVM(Ruby Version Manager)
1.1:命令行安裝
curl -L get.rvm.io | bash -s stable
如果收獲如下報(bào)錯(cuò):
curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 3 ms: Connection refused
不要慌缴罗,原因不可描述助琐,If you know, you know。
方案一:打開你的梯子面氓,如果還是報(bào)錯(cuò)兵钮,那么請(qǐng)看方案二
方案二:如果開了梯子也沒(méi)有用,那么可能就是域名解析也被污染了舌界,我們就只有去修改主機(jī)文件了掘譬,也就是host文件
,把某個(gè)域名強(qiáng)制解析到固定的IP呻拌。命令就不水字?jǐn)?shù)了葱轩,常用vim
的同學(xué)肯定都會(huì),不常用的打開了你也不一定會(huì)退出??藐握。有興趣的自己Search即可靴拱。這里推薦一個(gè)好用的工具SwitchHosts
。他在Github
上開源趾娃,直接下編譯好的安裝包即可:https://github.com/oldj/SwitchHosts/releases
現(xiàn)在我們需要拿到raw.githubusercontent.com
這個(gè)域名的IP缭嫡,可以通過(guò)這個(gè)網(wǎng)站查詢https://www.ipaddress.com。
目前它的IP是199.232.68.133
抬闷,在host中添加如下內(nèi)容:
199.232.68.133 raw.githubusercontent.com
然后繼續(xù)執(zhí)行RVM
的安裝命令即可妇蛀,如果超時(shí)就多執(zhí)行幾次,如果下載比較慢就稍等笤成。
1.2:配置RVM
環(huán)境變量
安裝完成后评架,你在終端會(huì)看到兩句提示:
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.
意思是你要先執(zhí)行source /Users/你的電腦用戶名/.rvm/scripts/rvm
,然后重啟終端炕泳。(Tips:如果不想重啟纵诞,直接刷新環(huán)境變量即可source ~/.bash_profile
。如果你還沒(méi)有.bashrc|.bash_profile|.profile|.zshrc
這些文件中的任意一個(gè)培遵,那么需要先創(chuàng)建浙芙,請(qǐng)自行Search)
查看RVM
版本號(hào),如果成功執(zhí)行籽腕,意味著已經(jīng)安裝成功嗡呼。
rvm -v
2:升級(jí)Ruby
查看Ruby
的最新版本(目前是3.0.0)
rvm list known
安裝查到的最新版本
rvm install 3.0.0
下載完成后查看是否安裝成功
rvm list
看到最新的版本(目前是3.0.0)即為成功,然后切換默認(rèn)版本為 3.0.0.
rvm use 3.0.0 --default
執(zhí)行 rvm list
查看一下是否切換成功皇耗,看到如下結(jié)果即算成功南窗。
=* 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
再執(zhí)行一下gem list --local | grep cocoapods
,如果看到pod版本已經(jīng)是最新的就已經(jīng)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)
到這里就升級(jí)結(jié)束窒悔,可以去正常使pod
。如果有遇上其他報(bào)錯(cuò)的敌买,可以私信简珠。