Mul*_*yan 31 macos xcode rubygems ios
我正在使用 macOS Mojave,当我尝试使用 gem 安装 cocoapods 时,出现以下错误。
构建原生扩展。这可能需要一段时间... 错误:安装 cocoapods 时出错:错误:无法构建 gem 本机扩展。
Run Code Online (Sandbox Code Playgroud)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 在 /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
当我运行以下命令时会出现此错误。
sudo gem install cocoapods
sudo gem install -n /usr/local/bin cocoapods
Run Code Online (Sandbox Code Playgroud)
我已经安装了 xcode 命令行工具,运行时收到以下消息 xcode-select --install
xcode-select: 错误:命令行工具已经安装,使用“软件更新”安装更新
我也同意 xcode 许可协议与命令 sudo xcodebuild -license
错误登录/Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.out
给出了以下内容
当前目录:/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 在 /System/Library/Frameworks/Ruby.fra$ 找不到 ruby 的头文件
extconf 失败,退出代码 1
我该怎么做才能解决这个问题?
小智 62
可以在此处找到此问题的答案,尽管它与此问题无关。以下是最有效的答案片段。
对于macOS 10.14 上的 Xcode 11,即使在安装 Xcode 和安装命令行工具并接受许可证后,也会发生这种情况
sudo xcode-select --install
sudo xcodebuild -license accept
Run Code Online (Sandbox Code Playgroud)
问题是 Xcode 11 提供了 macOS 10.15 SDK,其中包括 ruby2.6 的头文件,但不包括 macOS 10.14 的 ruby2.3。您可以通过运行来验证这是您的问题
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
Run Code Online (Sandbox Code Playgroud)
在 macOS 10.14 和 Xcode 11 上打印不存在的路径
/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
Run Code Online (Sandbox Code Playgroud)
但是,Xcode 11 在/Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk
. 没有必要通过安装其他答案中建议的旧头文件来污染系统目录。相反,通过选择该 SDK,将找到适当的 ruby2.3 标头:
sudo xcode-select --switch /Library/Developer/CommandLineTools
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
Run Code Online (Sandbox Code Playgroud)
这现在应该正确打印
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0
Run Code Online (Sandbox Code Playgroud)
同样,gem install
应在选择该 SDK 时工作。
要切换回使用当前的 Xcode 11 SDK,请使用
sudo xcode-select --switch /Applications/Xcode.app
Run Code Online (Sandbox Code Playgroud)
小智 14
sudo xcode-select --switch /Library/Developer/CommandLineTools
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
Run Code Online (Sandbox Code Playgroud)
kb9*_*920 12
对我来说使用命令sudo gem install cocoapods -v 1.8.4
而不是sudo gem install cocoapods
参考:https : //github.com/CocoaPods/CocoaPods/issues/9568#issuecomment-599235420
小智 9
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
Run Code Online (Sandbox Code Playgroud)
找出你的红宝石配置。/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
Run Code Online (Sandbox Code Playgroud)
那么您应该通过执行下一步来更正配置。sudo xcode-select --switch /Library/Developer/CommandLineTools
Run Code Online (Sandbox Code Playgroud)
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
Run Code Online (Sandbox Code Playgroud)
再次查看路径是否已更改。/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0
Run Code Online (Sandbox Code Playgroud)
现在你可以运行gem install
安装 cocoapods 了!
这对我很有帮助/很有魅力:
# brew cleanup -d -v
# brew install cocoapods
Run Code Online (Sandbox Code Playgroud)
PS:你应该安装了 Homebrew。您可以使用以下命令安装 brew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Run Code Online (Sandbox Code Playgroud)
祝你好运 :)
小智 5
在 mac os big sur 上试试这个
sudo gem install cocoapods -v 1.8.4
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
32719 次 |
最近记录: |