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 解决方法)的步骤:
-
使用以下命令卸载 Ruby:
brew uninstall ruby --force -
卸载 CocoaPods。首先,尝试列出所有 CocoaPods 版本/组件
gem list --local | grep cocoapods。然后将它们一一卸载,就我而言:
sudo gem uninstall cocoapods
sudo gem uninstall cocoapods-core
sudo gem uninstall cocoapods-downloader
等等。
- 作为下一步,我能够重新安装 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
没有任何问题。
THE END
二维码