安装 cocoapods 时 gem 本机扩展错误

Pet*_*ter 31 ios cocoapods

cocoapods更换 SSD 后,我试图在我的 MacBook air 中重新安装,现在出现此波纹管错误。

sudo gem install cocoapods

构建原生扩展。这可能需要一段时间... 错误:安装 cocoapods 时出错:错误:无法构建 gem 本机扩展。

current directory: /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2/ext/ffi_c
Run Code Online (Sandbox Code Playgroud)

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20200308-27204-6l0a5q.rb extconf.rb mkmf.rb 在 /System/Library 找不到 ruby​​ 的头文件/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h

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

小智 60

打开终端

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

重新打开终端

rvm 安装 ruby​​-2.6

rvm 使用 ruby​​-2.6.3

rvm --默认使用2.6.3

来自 MahmoudKhaled 对链接的评论

  • 这可行,但将从 <a website> 返回的任何内容管道传输到 bash 中存在安全风险。由于您基本上授予在 bash 中向网站执行任何命令的权力,在本例中为“https://get.rvm.io”,这可能不是恶意的,但请注意这一点! (3认同)
  • 好吧,您无法安装 ruby​​ 2.6 并期望使用 ruby​​ 2.6.3,因此它们应该匹配。然而,这篇文章让我走上了正轨。一旦我安装了 ruby​​ 2.6,我就可以升级/安装 cocoapods (3认同)
  • 警告:Ruby Homebrew 安装程序现已弃用,并已在 Bash 中重写。请迁移到以下命令: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" (3认同)
  • 注意:访问 Apple 网站的“开发人员”部分,然后下载 CLT .dmg 存档。然后像安装任何其他应用程序一样安装它。否则 Brew 安装失败 (2认同)

Kev*_*ldo 12

对我来说,它通过安装以前版本的 cocoapods 起作用

sudo gem install cocoapods -v 1.8.4
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你


小智 8

可以通过将 ruby​​ 更新到最新版本 2.3.0 来修复此错误。

您可以按照以下步骤将 ruby​​ 版本更新为最新版本。

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

打开终端并输入:

红宝石 -v

  1. 安装 Ruby 版本管理器 rvm

在终端,

curl -L https://get.rvm.io | bash -s stable
Run Code Online (Sandbox Code Playgroud)

一旦此命令运行完毕,您可能需要重新启动终端才能识别 rvm。

  1. 安装最新版本的 Ruby

    rvm 安装 ruby​​-[版本]

就我而言,这是

rvm install ruby-2.7.1
Run Code Online (Sandbox Code Playgroud)

这需要一段时间才能运行,因为它必须安装很多依赖项并多次请求我的许可。

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

您现在应该正在运行最新版本的 Ruby。您可以像以前一样使用步骤 1 中的 ruby​​ -v 命令进行检查。如果您发现不是,您可以手动设置它。在终端类型中:

rvm use ruby-2.7.1
Run Code Online (Sandbox Code Playgroud)

如果您想将此最新版本的 Ruby 设置为默认版本,请在终端输入:

rvm --default use 2.7.1
Run Code Online (Sandbox Code Playgroud)

完成后,您可以使用以下命令来升级 cocoapods

sudo gem install cocoapods
Run Code Online (Sandbox Code Playgroud)


小智 6

更新后,您可能没有在 Xcode > Preference > Location 中选择命令行工具。

sudo gem install cocoapods命令在 Xcode 中选择该工具后起作用。