34

由于 ffi 问题,在 M1 MacBook 上运行“pod install”对我来说失败,如此所述。

我遵循了一些解决方法(我想我以不同的顺序尝试了所有这些方法),但现在我得到了一个稍微不同的错误:

LoadError - dlopen(/opt/homebrew/lib/ruby/gems/3.0.0/gems/ffi-1.15.0/lib/ffi_c.bundle, 9): no suitable image found.  Did find:
    /opt/homebrew/lib/ruby/gems/3.0.0/gems/ffi-1.15.0/lib/ffi_c.bundle: mach-o, but wrong architecture
    /opt/homebrew/lib/ruby/gems/3.0.0/gems/ffi-1.15.0/lib/ffi_c.bundle: mach-o, but wrong architecture - /opt/homebrew/lib/ruby/gems/3.0.0/gems/ffi-1.15.0/lib/ffi_c.bundle

所以,看来我现在有 ffi,但架构错误?我怎样才能解决这个问题?无论是否在 Rosetta 模式下运行终端,都会发生这种情况。

顺便说一句,其中一个建议的解决方法对我来说没有成功。当我尝试:

sudo arch -x86_64 gem install ffi

我得到:

arch: posix_spawnp: gem: Bad CPU type in executable

不确定这是否相关。

4

7 回答 7

59

回答我自己的问题。我通过卸载有问题的 Ruby 版本和 CocoaPods 解决了 ffi 问题,然后我使用 -x86_64 架构重新安装了 ffi 和 CocoaPods。

这些是我为恢复工作状态(并为 ffi 应用 M1 解决方法)所做的步骤:

  1. 使用以下命令卸载 Ruby:brew uninstall ruby --force

  2. 卸载 CocoaPods。首先,尝试列出所有 CocoaPods 版本/组件gem list --local | grep cocoapods。然后一一卸载,就我而言:

sudo gem uninstall cocoapods

sudo gem uninstall cocoapods-core

sudo gem uninstall cocoapods-downloader

等等

  1. 作为下一步,我能够重新安装 ffi,然后重新安装 CocoaPods:

sudo arch -x86_64 gem install ffi

sudo arch -x86_64 gem install cocoapods

完成后,我可以pod install按预期运行。请注意,我一直在标准模式下打开终端 - 不需要 Rosetta。

于 2021-03-23T21:38:57.247 回答
24

正如 Datasun 所说,我删除了 cocoapods

gem list --local | grep cocoapods | awk '{print $1}' | xargs sudo gem uninstall

然后运行:

brew remove rbenv
sudo rm -rf ~/.rbenv
sudo arch -x86_64 gem install ffi
sudo arch -x86_64 gem install cocoapods
brew install rbenv
rbenv install 3.0.1
rbenv global 3.0.1

pod install

没有任何问题。

于 2021-06-01T20:45:31.203 回答
5

我同意Datasun的回答。但我设法遵循了大致相同的步骤,这些步骤产生了一个有效的结果,我认为它更好或一样好。我在终端中运行了这些行:

brew uninstall --ignore-dependencies ruby

然后

sudo gem uninstall cocoapods
sudo gem uninstall cocoapods-core
sudo gem uninstall cocoapods-downloader

在此之后,我想自制 cocoapods,所以我使用了:

brew install cocoapods

(您可能需要使用重新安装)

于 2021-10-17T11:48:12.040 回答
2

我几乎尝试了所有方法,这是唯一对我有用的解决方案:

uninstalling the cocoapods package through gem (sudo gem uninstall cocoapods)
 and reinstalling it with homebrew (brew install cocoapods) fixed my problem.

问题是我cocoapods通过 gem install 而不是 homebrew 安装的。

于 2022-02-09T14:58:27.513 回答
1

我同意Datasun的回答。但目前我们可以在 M1 Macbook中使用arm64来代替。x86_64

我重新安装ruby并在终端中运行了这些行:

gem uninstall cocoapods
gem uninstall cocoapods-core
gem uninstall cocoapods-downloader

gem uninstall ffi
gem install ffi
于 2022-02-17T11:27:07.680 回答
1

对我来说,在关注@Datasun 之后,我不得不做这些额外的事情:

brew install ruby

echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc
于 2021-11-22T20:48:58.990 回答
1

这描述了我遇到的确切问题。然而,没有一个解决方案奏效。最后,这就是帮助我解决问题的原因:

   brew unlink libyaml && brew link libyaml
   brew unlink openssl && brew link --force openssl

参考: https ://stackoverflow.com/a/24902917/1809053

于 2022-01-14T17:40:09.713 回答