每次系统升级,都是一个坑
macOS High Sierra 10.13.2
系统版本: macOS High Sierra 10.13.2
Xcode: 9.2
最近一次使用pod指令来执行操作的时候, 输出下面这句话:
-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory
突然之前, pod指令识别不了了, 第一反应是pod需要重新安装了, 然后执行下面的指令去安装:
sudo gem install cocoapods
却没有安装成功:
ERROR: While executing gem ... (TypeError)
no implicit conversion of nil into String
找了一些资料, 尝试了一些方法, 依然没能解决这个问题, 查看当前的源:
$ gem sources -l
*** CURRENT SOURCES ***
https://ruby.taobao.org/
和当前的ruby版本:
$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17]
貌似都没有问题, 但就是安装不了CocoaPods, 然后执行下面的指令, 升级一下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.
依然是失败, 有的文章说是权限的问题, 但是已经加上sudo, 依然是不行; 最后看到一个说是使用 homebrew 再装一个 ruby.
解决方法:
使用 homebrew首页的指令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装成功后, 执行下面的指令来安装ruby:
$ brew install ruby
完成后, 再来安装CocoaPods:
$ sudo gem install cocoapods
这样就能成功安装了, pod即可恢复正常!!!
macOS Catalina 10.15
在使用 macOS 10.15 时,Cocoapods 再次失效,使用上面方法重新安装,依然没有解决问题:
cocoapods bad interpreter: No such file or directory
查了相关资料,说是需要升级 gem 版本,使用下面指令升级gem:
$ sudo gem update --system
这时又报了下面的错误:
SSL verification error at depth 0: certificate has expired (10)
继续查找资料,了解到是 淘宝的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 失效
在新版系统中,pod环境没问题,使用 pod 可以正常看到指令输出,其他指令都能正常执行;但是在使用 pod install/update 下载第三方库的时候,一直报下面的错误:
[!] Couldn't determine repo type for URL: `https://cdn.cocoapods.org/`: Net::OpenTimeout
可以肯定的是本地的 repos 库出现了问题,但是尝试了很多方法都没能解决,最后使用清华的镜像解决了,下面是官方提供的添加方法:
$ 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'