安装CocoaPods时出现了gem本地扩展错误

40
尝试在更换MacBook空气的SSD后重新安装,现在遇到以下错误。 sudo gem install cocoapods 正在构建本地扩展,这可能需要一段时间... 错误:安装时出错:错误:无法构建宝石原生扩展。
current directory: /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20200308-27204-6l0a5q.rb extconf.rb mkmf.rb 无法找到位于 /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h 的 Ruby 标头文件 extconf 失败,退出码为1 Gem 文件将保留在 /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2 进行检查。结果已记录在 /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.out 中。
11个回答

73

打开终端

curl -L https://get.rvm.io | bash -s stable

重新打开终端

rvm install ruby-2.6

rvm use ruby-2.6.3

rvm --default use 2.6.3

来自 MahmoudKhaled 在此链接中的评论。


2
请注意:在开发者部分进入苹果网站,下载CLT .dmg归档文件。然后像安装其他应用程序一样进行安装。否则,Brew安装将失败。 - LOG_TAG
4
这种方法是可行的,但将来自<a网站>的任何内容传输到bash中存在安全风险。因为你基本上赋予了该网站(在这种情况下是"https://get.rvm.io")在bash中执行任何命令的权力,尽管这可能不会有恶意,但仍需谨慎! - ErikBrandsma
5
你不能安装 Ruby 2.6 并期望使用 Ruby 2.6.3,因此它们应该匹配。然而,这篇文章让我找到了正确的方法。一旦我安装了 Ruby 2.6,我就能够升级/安装 CocoaPods。 - Eric Duffett
3
警告:Ruby Homebrew安装程序现已弃用,并已改用Bash重写。请迁移到以下命令: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" - mobibob
1
安装完rvm后,请重新启动终端。 - Vinoth Vino
显示剩余2条评论

20

对我而言,通过安装早期版本的cocoapods解决了问题。

sudo gem install cocoapods -v 1.8.4

希望这能有所帮助


14

通过将ruby更新到最新版本来解决这个错误,版本2.3.0会出现该问题。

您可以按照以下步骤将Ruby版本更新到最新版本。

  1. 检查您的Mac上安装的Ruby版本

打开终端并键入:

ruby -v

  1. 安装Ruby版本管理器rvm

在终端中输入:

curl -L https://get.rvm.io | bash -s stable

当这个命令运行完后,你可能需要重启终端才能让 rvm 被识别。

  1. 安装最新版本的 Ruby

    rvm install ruby-[版本号]

对我来说,版本号是

rvm install ruby-2.7.1

由于需要安装很多依赖项并且要多次请求我的许可,这个过程运行了一段时间。

  1. 将最新版本的Ruby设置为您想要使用的版本

现在您应该正在运行最新版本的Ruby。 您可以像第1步中那样使用ruby -v命令进行检查。 如果您发现没有,请手动设置。 在终端中输入:

rvm use ruby-2.7.1

如果你想将这个最新版本的 Ruby 设置为默认版本,在终端中输入:

rvm --default use 2.7.1

完成上述操作后,您可以使用以下命令升级cocoapods:

sudo gem install cocoapods

7

可能您在更新后没有在Xcode>首选项>位置中选择命令行工具。

在选择了Xcode中的工具之后,sudo gem install cocoapods 命令将会生效。


2
打开终端
xcode-select --install

重新打开终端。
sudo gem install cocoapods

这就是全部啦!

这个运行非常顺畅,尝试在Xcode 10.1和macOS 10.13上使用cocoa pods,而不需要其他答案中的自定义ruby升级。谢谢! - Stickley

2

错误:安装cocoapods时出现gem本机扩展错误。

答案:按照以下3个步骤,问题将得到解决。

步骤1:打开XCode进入以下路径

XCode > 偏好设置 > 位置 > 命令行工具(选择-Xcode)

步骤2:打开终端-粘贴以下命令

curl -L https://get.rvm.io | bash -s stable

重新打开终端-粘贴以下命令

注意:这会花费3-5分钟

rvm install ruby-2.6

rvm use ruby-2.6.3

rvm --default use 2.6.3

步骤3:

打开终端-键入下面的命令

sudo gem install cocoapods

现在安装cocoapods时不会出现本机扩展错误了。

问题已经解决。


0

简短回答:

curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -
curl -sSL https://rvm.io/mpapis.asc | gpg --import -


curl -sSL https://get.rvm.io | bash -s stable --ruby

sudo gem install cocoapods

详细信息请参考:另一篇帖子的答案


0
这对我来说有效:
步骤1(安装HomeBrew)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)
步骤2(在终端中运行这两个命令将Homebrew添加到您的PATH)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/”YOUR USER FORLDER”/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)"
步骤3(现在您可以安装cocoapods)
brew install cocoapods

0

我遇到了同样的错误,无法升级cocoapods,问题在于homebrew更新失败。

我注意到当尝试使用nvm安装新的ruby版本时,它失败了,因为它试图运行homebrew update。所以似乎nvm和homebrew是相互关联的。

我按照这里的说明操作:https://github.com/Homebrew/brew/issues/9420

基本上:

brew update(失败)

git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow

git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow

brew update(成功)

brew install cocoapods

虽然没有解决错误,但以另一种方式升级了cocoapods。


0

在这里输入图片描述

我之前已经使用了所有的代码,并显示出来,但我尝试第一千次运行flutter doctor时......

CocoaPods 1.8.4已过期(建议使用1.10.0)

我刚刚更改为:sudo gem install cocoapods -v 1.10.0

然后显然安装了CocoaPods。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接