M1(AppleSilicon)上的CocoaPods因ffi错误的架构而失败

运行“POD安装”在M1的MacBook失败对我来说由于FFI问题,如所描述这里。

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

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

不确定这是否相关。

回答

回答我自己的问题。我通过卸载有问题的 Ruby 版本和 CocoaPods 修复了 ffi 问题,然后我使用 -x86_64 arch 重新安装了 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。


回答

正如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

没有任何问题。


以上是M1(AppleSilicon)上的CocoaPods因ffi错误的架构而失败的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>