使用 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,其中包括用于 ruby2.6 的 headers,但不用于 macOS 10.14 的 ruby2.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,将找到合适的 ruby2.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"]'
- 运行
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
弄清楚你的 ruby 配置。
- 如果输出是一个不存在的 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
那么您应该通过执行下一步来更正配置。
- 运行
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
安装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,
试试这个:
- 安装 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
xcode-select --switch /Applications/Xcode.app/Contents/Develope
gem install cocoapods
应该很有魅力!
您应该为 Xcode 安装最新版本的 CommandLineTools 以解决此问题。
尝试
通过终端安装自制程序。
homebrew安装成功后,在终端输入
$ brew 安装 cocoapods
我从其他线程复制了这些命令。在尝试了上面和其他线程中回答的几种方法之后。只有这个适合我。
运行这条命令然后关闭终端
卷曲-L https://get.rvm.io | bash-稳定
运行 这些命令一个一个地执行,或者将它们全部复制并粘贴到终端中。现在最新版本是3.1.0
rvm 安装ruby-3.1.0
rvm --默认使用 3.1.0
sudo gem 安装 cocoapods
我正在使用 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,其中包括用于 ruby2.6 的 headers,但不用于 macOS 10.14 的 ruby2.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,将找到合适的 ruby2.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"]'
- 运行
弄清楚你的 ruby 配置。ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
- 如果输出是一个不存在的 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
- 运行
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
安装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, 试试这个:
- 安装 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
xcode-select --switch /Applications/Xcode.app/Contents/Develope
gem install cocoapods
应该很有魅力!
您应该为 Xcode 安装最新版本的 CommandLineTools 以解决此问题。
尝试
通过终端安装自制程序。
homebrew安装成功后,在终端输入
$ brew 安装 cocoapods
我从其他线程复制了这些命令。在尝试了上面和其他线程中回答的几种方法之后。只有这个适合我。
运行这条命令然后关闭终端
卷曲-L https://get.rvm.io | bash-稳定
运行 这些命令一个一个地执行,或者将它们全部复制并粘贴到终端中。现在最新版本是3.1.0
rvm 安装ruby-3.1.0
rvm --默认使用 3.1.0
sudo gem 安装 cocoapods