无法在 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) 中不可用

无法运行 latexindent macOS Monterey 12.0.1

苹果发布 macOS 12——Monterey