iOS

Cocoapods 报错的解决方案 (macOS 10.13)

Posted by Puqin Chen on 2018-07-29

很久没有新写项目了,今天晚上通过 cocoapods 给项目添加第三方库的时候,突然提示 -bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory 这样的错误信息。

发现是系统预装的 ruby 版本变成了 2.3 ,于是之前安装的 cocoapods 就找不到之前的版本呢,选择重新安装即可。但是当我用 sudo gem install cocoapods 却出现了 以下错误ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod

从提示可以看出是因为没有权限在/usr/bin/这个目录写入。搜索后发现原因是系统的新安全机制:System Integrity Protection也叫作:rootless,这个默认的安全机制用于保护下面三个目录,所以无法在/usr/bin/中安装pod

1
2
3
/System
/sbin
/usr (with the exception of /usr/local subdirectory)

同时,网上也给出了两种解决方案:

  • 关闭该机制,执行$ sudo nvram boot-args="rootless=0"; sudo reboot 命令后,重启电脑,保证设置生效。
  • 绕开该机制,sudo gem install -n /usr/local/bin cocoapods 将 pod 安装在 /usr/local/bin 目录下。