CocoaPods无法在macOS High Sierra中工作


162

升级到macOS后,High Sierra CocoaPods无法正常工作。虽然很想摆脱CocoaPods,但不幸的是目前不在范围之内。错误消息如下。

zsh: /Users/****/.gems/bin/pod: bad interpreter: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin: no such file or directory

我意识到该错误源于Ruby的升级,但是简易修复程序是什么?尝试使CocoaPods使用新的红宝石版本会产生其他错误。

编辑:现在我安装Ruby 2.0rvm install 2.0.0rvm use 2.0.0,然后重新安装的CocoaPods sudo gem install cocoapods。似乎现在正在工作。


您是否更新了命令行工具?
马特

@马特是,sudo xcode-select -s /Applications/Xcode-beta.appsudo xcode-select --install和随后从那里GUI。
Maciej Swic '17

我在这里想的是:developer.apple.com/download/more我经常发现外部工具在安装这些工具之前是无法使用的。
马特

Answers:


416

根据https://github.com/CocoaPods/CocoaPods/issues/6778,重新安装CocoaPods应该可以解决此问题:

sudo gem install cocoapods

2
也为我工作,应该标记为已接受的解决方案
swalkner

17
一个简单的“ brew reinstall cocoapods”起作用了(因为它为您运行了这个确切的命令)。感谢您指出这一点。
马库斯

尽管这可行,但绝对不能解决更新的Ruby版本,这绝对应该是CocoaPods问题。可能重新安装它只是再次检查安装,因此可以“修复”它。
汉斯·克诺歇(HansKnöchel)

gem install cocoapods-不会将nil隐式转换为字符串错误,但“ brew reinstall cocoapods”可以完成工作。感谢@Markus
krishnan

宝石安装-n / usr / local / bin cocoapods帮助我
Anupam Gupta

112

升级到macOS High Sierra后,请使用以下命令进行修复:

sudo gem update --system
sudo gem install -n /usr/local/bin cocoapods

一旦完成,请编写以下命令:

pod install

这个解决方案对我有用... !!!


1
运行第一个命令时,出现“错误:执行gem ...(Errno :: EPERM)时不允许进行操作@ rb_sysopen-/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem”,但是运行第二个仍然可以进行“ pod安装”。谢谢。
布莱斯·桑德兰德

尽管有“警告”,但无论如何我还是要在这里说谢谢。这是唯一对我有用的东西。只需重新安装cocoapods(几次),在我完成上述两个步骤之前,没有什么区别。那谢谢啦!
huygir

我必须通过以下命令运行ruby更新:sudo gem update -n /usr/local/bin --system
Paul Popiel

为我工作(cocoapods 1.5.3)。
atereshkov

27

安装CocoaPods时出现此错误

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.

我用了这个说法。有效!

sudo gem install cocoapods -n /usr/local/bin

1
这是唯一对我有用的解决方案。谢谢
Dan Beaulieu


9

这解决了我的问题:

$ brew install ruby
$ gem install -n /usr/local/bin cocoapods

请简要说明一下已发布的代码的功能,以便使新手对此技术有所了解并重新使用您的答案:-)
Mathieu VIALES

1
初潮的人应该知道如何像其他人一样阅读。
thibaut noah

@MathieuVIALES,“酿造红宝石”假定您已经有了Homebrew打包程序(brew.sh)。然后安装该命令(或可能从技术上重新安装ruby,因为您实际上需要ruby来安装Homebrew本身)。下一行“ gem install -n / usr / local / bin cocoapods”重新安装CocoaPod程序(更多信息位于cocoapods.org)。
Eddie Eddie Eddie


6

因此,在更新到High Sierra之后,我也遇到了这个问题,并且似乎ruby框架正在访问的文件的位置有所更改。

您可以使用

sudo gem install cocoapods

然后使用安全措施更新Pod

pod repo update 

最后

pod install

使pod文件再次工作。

希望这会有所帮助:)


5

尝试使用

sudo gem update --system

之前

sudo gem install cocoapods

这对我有用


5

这对我有用:

brew link --overwrite cocoapods

5

Cocoapods安装过程:

  1. sudo gem install cocoapods (如果您对cocoapds有任何问题,请更新gem文件)

  2. sudo gem update --system

  3. sudo gem install cocoapods


4

对于我来说,我必须:

gem uninstall cocoapods
which pod

它仍然在路径中显示它,所以我删除了它。确保它仍然没有出现。

然后

gem install cocoapods

终于!在安装cocoapods之前删除旧的pod可执行文件对我
有用


3

安装后我也遇到了此错误High Sierra

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.

我使用了Danh Huynh(请参见上文)确定的以下语句,并且它起作用了!

sudo gem install cocoapods -n /usr/local/bin

1
这只是这个现有答案的重复,不是吗?

这为我解决了问题
MiMo

3

MacOS High Sierra默认使用ruby 2.3。升级到它之后,某些旧的红宝石宝石可能无法正常工作。当我运行bundle命令时,此问题发生在我身上(bundler是一个ruby gem;它具有一个称为bundle的实用程序)。

因此,澄清一下,任何试图访问ruby 2.0的旧的ruby宝石(cocoapods,bundler等)都将失败。

解决方案是将这些旧的gem重新安装在您有权写入的目录中。

对于椰壳足类,

sudo gem install cocoapods -n /usr/local/bin

会成功的

如果您喜欢before安装,则可以选择升级gem系统:

sudo gem update --system

这可能会提示您升级失败。但是实际上,如果您键入:

gem --version

您可以看到升级成功。

对于捆绑器或其他宝石,请尝试执行以下操作:

sudo gem install gem-to-install(for example, bundler) -n /usr/local/bin

关于该-n选项。不要错过。您可以根据需要查看gem文档。

因此,解决方案将全都放在reinstalling the old gem正确的目录中。


1

当我做同样的事情时,我又遇到一个错误,说

错误:执行gem时...(Gem :: FilePermissionError)您没有对/Library/Ruby/Gems/2.3.0目录的写权限。

然后我做到了,并且工作正常。

sudo gem uninstall cocoapods

sudo gem install cocoapods


1

升级到Mac OSX High Sierra时,这是一个常见问题。

修复只是简单地安装Cocoapods(再次):

sudo gem install cocoapods


0

在终端上使用以下命令后,我可以在项目中安装可可豆荚。

sudo gem install cocoapods --source http://rubygems.org

0

我也遇到了这个问题,但是随着各种重新安装/更新,它以不太戏剧化的方式解决了。刚刚更新了PATH环境变量,以指出我现有的(2.6.0)红宝石版本。


0

升级到Catalina后,我遇到了同样的问题。

  1. 我通过首先按照以下说明安装brew和ruby更新了ruby安装。 https://gorails.com/setup/osx/10.15-catalina(但仅限红宝石,而非护栏等)

  2. 然后,按照上述说明重新安装了可可粉。

    须藤宝石安装cocoapods

毕竟,我仍然收到上面的错误。然后,我键入“ zsh”以生成一个新的shell,并在〜/ .zshrc文件中插入配置设置。此“ pod update”命令重新运行后。


0

无须Sudo的.zhs友好解决方案

现代macOS不鼓励使用sudobash并将其从bash转移到zsh,因此,如果您不打算与时尚抗争,那么此答案可能会很有用。

  1. 确保.zshenv通过touch ~/.zshenv命令存在。通过添加以下行来配置RubyGems环境:

    export GEM_HOME=$HOME/.gem
    export PATH=$GEM_HOME/bin:$PATH

    不要忘记重新启动终端。

  2. 运行gem install cocoapods

0
If cannot install new version cocoapods, example below:
1. Please remove Command line tools
sudo rm -rf /Library/Developer/CommandLineTools
2. Install new Command line tools version
sudo xcode-select --install
3. after installing run below command
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.