每次系統(tǒng)升級,都是一個坑
macOS High Sierra 10.13.2
系統(tǒng)版本: macOS High Sierra 10.13.2
Xcode: 9.2
最近一次使用pod指令來執(zhí)行操作的時候, 輸出下面這句話:
-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory
突然之前, pod指令識別不了了, 第一反應(yīng)是pod需要重新安裝了, 然后執(zhí)行下面的指令去安裝:
sudo gem install cocoapods
卻沒有安裝成功:
ERROR: While executing gem ... (TypeError)
no implicit conversion of nil into String
找了一些資料, 嘗試了一些方法, 依然沒能解決這個問題, 查看當(dāng)前的源:
$ gem sources -l
*** CURRENT SOURCES ***
https://ruby.taobao.org/
和當(dāng)前的ruby版本:
$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]
貌似都沒有問題, 但就是安裝不了CocoaPods, 然后執(zhí)行下面的指令, 升級一下gem:
$ sudo gem update --system
查看最新的gem版本:
$ gem -v
2.6.14
然后再去安裝CocoaPods:
$ sudo gem install cocoapods
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.
依然是失敗, 有的文章說是權(quán)限的問題, 但是已經(jīng)加上sudo, 依然是不行; 最后看到一個說是使用 homebrew 再裝一個 ruby.
解決方法:
使用 homebrew首頁的指令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝成功后, 執(zhí)行下面的指令來安裝ruby:
$ brew install ruby
完成后, 再來安裝CocoaPods:
$ sudo gem install cocoapods
這樣就能成功安裝了, pod即可恢復(fù)正常!!!
macOS Catalina 10.15
在使用 macOS 10.15 時,Cocoapods 再次失效,使用上面方法重新安裝,依然沒有解決問題:
cocoapods bad interpreter: No such file or directory
查了相關(guān)資料,說是需要升級 gem 版本,使用下面指令升級gem:
$ sudo gem update --system
這時又報了下面的錯誤:
SSL verification error at depth 0: certificate has expired (10)
繼續(xù)查找資料,了解到是 淘寶的Ruby源不能使用,使用 ruby-china的源進行替換:
// 移除淘寶的源
gem sources --remove https://ruby.taobao.org/
// 添加ruby-china的源
gem sources -a https://gems.ruby-china.com/
完成后,再去升級 gem:
sudo gem update --system
無異常的話會輸出:
Latest version already installed. Done.
最后,安裝 Cocoapods:
sudo gem install cocoapods -n/usr/local/bin
到此,pod 即可正常使用。
macOS Catalina 10.15: pod install/update 失效
在新版系統(tǒng)中,pod環(huán)境沒問題,使用 pod 可以正常看到指令輸出,其他指令都能正常執(zhí)行;但是在使用 pod install/update 下載第三方庫的時候,一直報下面的錯誤:
[!] Couldn't determine repo type for URL: `https://cdn.cocoapods.org/`: Net::OpenTimeout
可以肯定的是本地的 repos 庫出現(xiàn)了問題,但是嘗試了很多方法都沒能解決,最后使用清華的鏡像解決了,下面是官方提供的添加方法:
$ cd ~/.cocoapods/repos
$ pod repo remove master
$ git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master
最后進入自己的工程,在自己工程的podFile第一行加上:
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'