无法在 macOS Monterey 版本 12.0 Beta 中安装 Cocoapods - Xcode 13.0(13A233)
Posted
技术标签:
【中文标题】无法在 macOS Monterey 版本 12.0 Beta 中安装 Cocoapods - Xcode 13.0(13A233)【英文标题】:Unable to install Cocoapods in macOS Monterey Version 12.0 Beta - Xcode 13.0(13A233) 【发布时间】:2021-11-26 07:10:53 【问题描述】:无法在 MacOS 12.0 Beta 和 Xcode 13.0 版中安装 Cocoapods
这里是 sudo gem install cocoapods
的终端输出userName@users-Mac-mini ~ % sudo gem install cocoapods 密码: 构建原生扩展。这可能需要一段时间... 错误:安装 cocoapods 时出错: 错误:无法构建 gem 原生扩展。
当前目录:/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.4/ext/ffi_c /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /Library/Ruby/Site/2.6.0 -r ./siteconf20211006-2973-16tlcws.rb extconf.rb *** extconf.rb 失败 *** 由于某种原因无法创建 Makefile,可能缺乏必要 库和/或标题。检查 mkmf.log 文件以获取更多详细信息。你可以 需要配置选项。
提供的配置选项:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=$opt-dir/include
--with-opt-lib
--without-opt-lib=$opt-dir/lib
--with-make-prog
--没有-make-prog
--srcdir=。
--curdir
--ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/$(RUBY_BASE_NAME)
--with-ffi_c-dir
--without-ffi_c-dir
--with-ffi_c-include
--without-ffi_c-include=$ffi_c-dir/include
--with-ffi_c-lib
--without-ffi_c-lib=$ffi_c-dir/lib
--enable-system-libffi
--disable-system-libffi
--with-libffi-config
--without-libffi-config
--with-pkg-config
--without-pkg-config
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:467:in try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:546:in
block in try_link0'
来自 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/tmpdir.rb:93:in mktmpdir' from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:543:in
try_link0'
来自 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:570:in try_link' from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:672:in
try_ldflags'
来自 /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:1832:in pkg_config' from extconf.rb:9:in
system_libffi_usable?
来自 extconf.rb:42:in `'
要查看此扩展无法编译的原因,请查看 mkmf.log,可在此处找到:
/Library/Ruby/Gems/2.6.0/extensions/universal-darwin-21/2.6.0/ffi-1.15.4/mkmf.log
extconf 失败,退出代码 1
Gem 文件将继续安装在 /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.4 中以供检查。 结果记录到 /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-21/2.6.0/ffi-1.15.4/gem_make.out
【问题讨论】:
要查看此扩展无法编译的原因,请查看 mkmf.log ❗️ 检查过了。但没有得到我应该做些什么来解决这个问题:( framework/Versions/2.6/usr/include/ruby-2.6.0/ruby/ruby.h:24:10:致命错误:找不到'ruby/config.h'文件#include“ruby/config.h”跨度> 您是否在全新安装的 macOS 12 上尝试此操作?您是否尝试重新安装 ruby? 是的,我也尝试过安装/更新 Ruby。但没有运气:/ 您找到解决此问题的方法了吗?我对 Monterey 的已发布版本也有同样的问题 【参考方案1】:在我的情况下,这是因为旧版本的 Xcode 被用于命令行工具(Xcode 12.5.1)。您可以通过在终端中运行来查看正在使用的 Xcode:
$ xcode-select --print-path
macOS Monterey 不正式支持早于 13.0 的 Xcode 版本,因此我不得不切换 Xcode 版本:
$ sudo xcode-select -switch <path/to/Xcode13>Xcode.app
将命令行工具切换到 Xcode 13 后,我能够成功安装 CocoaPods。
Source for xcode-select switch command
【讨论】:
【参考方案2】:对我来说,是 HomeBrew 解决了这个问题。卸载 cocoapods 并通过 HomeBrew 再次安装。如果您仍然有问题,请尝试先安装 ffi 库,这也会有所帮助。
顺便说一句,就我而言,Monterey 12.0.1 不是 beta,但应该是同一个问题。
【讨论】:
【参考方案3】:我在学习 Udemy 课程时遇到了同样的问题。当我浏览问答部分时,我发现了这个小宝石 [没有双关语]。
sudo gem install -n /usr/local/bin cocoapods -v 1.8.4
这就像一个冠军,安装没有问题。
但后来我意识到这是一个过时的版本并尝试了
sudo gem install cocoapods
再次。我还是有同样的问题。
然后我选择了 Homebrew 并使用了
brew install cocoapods
嘿...你知道吗,它有效。安装了最新最好的稳定版 [v 1.11.2_1]
【讨论】:
cocoapods -v 1.8.4 这可行,但对于一些使用 SDK 2.0 + 的颤振项目,cocoapods 版本需要更新。【参考方案4】:如果您使用 gem 安装 cococoapods,请将其卸载:
gem uninstall cocoapods
然后用自制软件安装它
brew install cocoapods
它对我有用。
【讨论】:
【参考方案5】:我有带有 M1 芯片的 MacBook Pro,它通过运行以下命令来工作
sudo arch -x86_64 gem install ffi
cd ios
arch -x86_64 pod install
【讨论】:
谢谢,但问题出在英特尔芯片上,而不是 M1 先生以上是关于无法在 macOS Monterey 版本 12.0 Beta 中安装 Cocoapods - Xcode 13.0(13A233)的主要内容,如果未能解决你的问题,请参考以下文章
MacOS 软件版本更新Monterey12.1版之后L2TP无法正常访问内网服务解决方案
MacOS 软件版本更新Monterey12.1版之后L2TP无法正常访问内网服务解决方案
Eclipse CDT 不适用于 macOS Monterey
localhost:5000 在 macOS v12 (Monterey) 中不可用