使用 gem 安装 cocoapods 时出错

Errors when installing cocoapods with gem

我正在使用 macOS Mojave,当我尝试使用 gem 安装 cocoapods 时,出现以下错误。

Building native extensions. This could take a while... ERROR: Error installing cocoapods: ERROR: Failed to build gem native extension.

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 ./siteconf20200302-707-1iveybq.rb extconf.rb mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2 for inspection. Results logged to /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.out

当我 运行 以下命令时出现此错误。

sudo gem install cocoapods

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

我已经安装了 xcode 命令行工具,当我 运行 xcode-select --install

时收到以下消息

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

我还同意 xcode 与命令 sudo xcodebuild -license

的许可协议

/Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.out 中的错误日志给出以下内容

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 ./siteco$ mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.fra$

extconf failed, exit code 1

我该怎么做才能解决这个问题?

可以在此处找到此问题的答案 here 尽管它与此问题无关。以下是最有效的答案片段。

对于 macOS 10.14 上的 Xcode 11,即使在安装 Xcode 和安装 command-line 工具并接受许可证后也会发生这种情况

sudo xcode-select --install
sudo xcodebuild -license accept

问题是 Xcode 11 附带了 macOS 10.15 SDK,其中包括用于 ruby​​2.6 的 headers,但不用于 macOS 10.14 的 ruby​​2.3。您可以通过 运行

验证这是您的问题
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'

在带有 Xcode 11 的 macOS 10.14 上打印 non-existent 路径

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

但是,Xcode 11 在 /Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk 中安装了 macOS 10.14 SDK。没有必要按照其他答案中的建议通过安装旧的 header 文件来污染系统目录。相反,通过选择该 SDK,将找到合适的 ruby​​2.3 headers:

sudo xcode-select --switch /Library/Developer/CommandLineTools
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'

现在应该可以正确打印了

/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

同样,gem install 应该在选择该 SDK 时工作。

要切换回使用当前的 Xcode 11 SDK,请使用

sudo xcode-select --switch /Applications/Xcode.app
sudo xcode-select --switch /Library/Developer/CommandLineTools

ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
  1. 运行
    ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
    
    弄清楚你的 ruby 配置。
  2. 如果输出是一个不存在的 MacOSX10.15 路径。 像
    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0
    
    那么您应该通过执行下一步来更正配置。
  3. 运行
    sudo xcode-select --switch /Library/Developer/CommandLineTools
    
  4. 你可以运行
    ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
    
    再次查看路径是否已更改。
  5. 输出应该是这样的
    /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0
    

现在可以运行gem install安装cocoapods了!

对我来说,使用命令 sudo gem install cocoapods -v 1.8.4 而不是 sudo gem install cocoapods

参考:https://github.com/CocoaPods/CocoaPods/issues/9568#issuecomment-599235420

这对我很有帮助/很有用:

# brew cleanup -d -v    
# brew install cocoapods

P.S.: 你应该安装 Homebrew。您可以使用以下命令安装 brew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

祝你好运:)

在 mac os 大苏尔

上试试这个
sudo gem install cocoapods -v 1.8.4

我花了一整天的时间来找出解决方案, 我正在使用 MacOS Big Sur Beta 8。 使用 gem 升级 cocoapods, 试试这个:

  1. 安装 rbenv
  • git clone https://github.com/rbenv/rbenv.git ~/.rbenv

  • cd ~/.rbenv && src/configure && make -C src

  • 将 ~/.rbenv/bin 添加到 $PATH 以访问 rbenv command-line 实用程序。 参见:https://github.com/rbenv/rbenv#basic-github-checkout

  • 确保 export PATH="$HOME/.rbenv/shims:${PATH}" 已添加到您的 $PATH

  1. xcode-select --switch /Applications/Xcode.app/Contents/Develope

  2. gem install cocoapods 应该很有魅力!

您应该为 Xcode 安装最新版本的 CommandLineTools 以解决此问题。

尝试

  1. 通过终端安装自制程序。

  2. homebrew安装成功后,在终端输入

    $ brew 安装 cocoapods

我从其他线程复制了这些命令。在尝试了上面和其他线程中回答的几种方法之后。只有这个适合我。

  1. 运行这条命令然后关闭终端

    卷曲-L https://get.rvm.io | bash-稳定

  2. 运行 这些命令一个一个地执行,或者将它们全部复制并粘贴到终端中。现在最新版本是3.1.0

    rvm 安装ruby-3.1.0

    rvm --默认使用 3.1.0

    sudo gem 安装 cocoapods