Dat*_*sun 10 ffi rosetta cocoapods apple-m1
运行“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
Run Code Online (Sandbox Code Playgroud)
所以,似乎我现在有 ffi,但架构错误?我怎样才能解决这个问题?在 Rosetta 模式下运行/不运行终端会发生这种情况。
顺便说一句,建议的解决方法之一对我来说没有成功。当我尝试:
sudo arch -x86_64 gem install ffi
Run Code Online (Sandbox Code Playgroud)
我得到:
arch: posix_spawnp: gem: Bad CPU type in executable
Run Code Online (Sandbox Code Playgroud)
不确定这是否相关。
小智 32
我同意Datasun的回答。但我设法遵循大致相同的步骤,得到了一个有效的结果,我认为更好或同样好。我在终端中运行了以下行:
brew uninstall --ignore-dependencies ruby
Run Code Online (Sandbox Code Playgroud)
然后
sudo gem uninstall cocoapods
sudo gem uninstall cocoapods-core
sudo gem uninstall cocoapods-downloader
Run Code Online (Sandbox Code Playgroud)
之后我想自制 cocoapods 所以我用了:
brew install cocoapods
Run Code Online (Sandbox Code Playgroud)
(您可能需要使用重新安装)
Dat*_*sun 18
回答我自己的问题。我通过卸载有问题的 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
等等。
sudo arch -x86_64 gem install ffi
sudo arch -x86_64 gem install cocoapods
完成后,我可以pod install
按预期运行。请注意,我一直在标准模式下打开终端 - 不需要 Rosetta。
Nem*_*ion 17
我几乎尝试了所有方法,这是唯一对我有用的解决方案:
通过gem卸载cocoapods包
sudo gem uninstall cocoapods
Run Code Online (Sandbox Code Playgroud)
并用自制程序重新安装它
brew install cocoapods
Run Code Online (Sandbox Code Playgroud)
解决了我的问题。
问题是我cocoapods
通过 gem install 而不是 homebrew 安装的。
Mag*_*ern 13
我通过首先清理所有以前安装的 Pod 来使其工作:
pod deintegrate
然后使用以下命令再次安装它们:
arch -x86_64 pod install
正如Datasun所说,我删除了cocoapods
gem list --local | grep cocoapods | awk '{print $1}' | xargs sudo gem uninstall
Run Code Online (Sandbox Code Playgroud)
然后运行:
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
Run Code Online (Sandbox Code Playgroud)
没有任何问题。
小智 7
我在使用 m1 芯片的新 MacBook 上设置电容器项目时遇到此错误。但是,如果您想使用电容器、flutter 或 React Native,您将收到此错误,因为这是一个独立于框架、与计算机相关的问题。
您的计算机上必须安装 Ruby 和 cocoapods。就我而言,一一运行以下命令是有效的。
1.
brew install ruby
Run Code Online (Sandbox Code Playgroud)
echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc
Run Code Online (Sandbox Code Playgroud)
brew install cocoapods
Run Code Online (Sandbox Code Playgroud)
而且,你现在已经准备好了。
pod install
Run Code Online (Sandbox Code Playgroud)
当我尝试 x86_64 时:
sudo arch -x86_64 gem install ffi
linking shared-object ffi_c.bundle
ld: warning: ignoring file /Users/aa/.rbenv/versions/3.0.1/lib/libruby.3.0.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
Undefined symbols for architecture x86_64:
"_rb_ary_detransient", referenced from:
_memory_put_array_of_int8 in AbstractMemory.o
Run Code Online (Sandbox Code Playgroud)
所以我尝试了:
sudo arch -arm64e gem install ffi
sudo arch -arm64e gem install cocoapods
然后pod install
工作了!
我还必须运行rbenv init
并放置 eval~/.zshrc
才能使正确的 ruby 版本正常工作。
我同意Datasun的回答。但目前我们可以在 M1 Macbook 中arm64
使用。x86_64
我重新安装ruby
并在终端中运行以下行:
gem uninstall cocoapods
gem uninstall cocoapods-core
gem uninstall cocoapods-downloader
gem uninstall ffi
gem install ffi
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2947 次 |
最近记录: |