M1芯片执行sudo arch -x86_64 gem install ffi及Ruby更新后pod install报错
M1芯片设备上Pod Install故障排查与解决建议
问题描述
一直在研究如何让pod install在M1芯片设备上正常运行,但仍未解决问题。此前已尝试以下操作:
- 执行
sudo arch -x86_64 gem install ffi - 更新Ruby至3.1版本并设置路径覆盖系统默认
- 分别执行
arch -x86_64 pod install和pod install
更新Ruby解决了部分错误,但运行pod install时仍出现如下报错:
/Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/user_interface/error_report.rb:34:in `force_encoding': can't modify frozen String (FrozenError) from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/user_interface/error_report.rb:34:in `report' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/command.rb:66:in `report_error' from /Library/Ruby/Gems/2.6.0/gems/claide-1.1.0/lib/claide/command.rb:396:in `handle_exception' from /Library/Ruby/Gems/2.6.0/gems/claide-1.1.0/lib/claide/command.rb:337:in `rescue in run' from /Library/Ruby/Gems/2.6.0/gems/claide-1.1.0/lib/claide/command.rb:324:in `run' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/command.rb:52:in `run' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/bin/pod:55:in `<top (required)>' from /usr/local/bin/pod:23:in `load' from /usr/local/bin/pod:23:in `<main>' /Library/Ruby/Gems/2.6.0/gems/xcodeproj-1.21.0/lib/xcodeproj/project.rb:228:in `initialize_from_file': [Xcodeproj] Unknown object version (56). (RuntimeError) from /Library/Ruby/Gems/2.6.0/gems/xcodeproj-1.21.0/lib/xcodeproj/project.rb:113:in `open' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer/analyzer.rb:1190:in `block (2 levels) in inspect_targets_to_integrate' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer/analyzer.rb:1189:in `each' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer/analyzer.rb:1189:in `block in inspect_targets_to_integrate' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/user_interface.rb:64:in `section' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer/analyzer.rb:1184:in `inspect_targets_to_integrate' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer/analyzer.rb:106:in `analyze' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:416:in `analyze' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:241:in `block in resolve_dependencies' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/user_interface.rb:64:in `section' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:240:in `resolve_dependencies' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/installer.rb:161:in `install!' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/command/install.rb:52:in `run' from /Library/Ruby/Gems/2.6.0/gems/claide-1.1.0/lib/claide/command.rb:334:in `run' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/lib/cocoapods/command.rb:52:in `run' from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.3/bin/pod:55:in `<top (required)>' from /usr/local/bin/pod:23:in `load' from /usr/local/bin/pod:23:in `<main>'
解决建议
从报错信息看,核心问题有两个:Ruby版本与CocoaPods的兼容冲突(FrozenError)、Xcodeproj版本不支持当前Xcode项目的对象版本(56)。以下是针对性解决步骤:
1. 升级Xcodeproj到兼容版本
[Xcodeproj] Unknown object version (56)说明当前xcodeproj 1.21.0不支持项目的对象版本,需要升级:
sudo gem install xcodeproj --version '>= 1.22.0'
若用rbenv/rvm管理Ruby,可去掉sudo直接安装。
2. 确保CocoaPods关联到Ruby 3.1环境
报错显示仍在使用系统Ruby 2.6.0,说明Ruby 3.1未正确关联CocoaPods,重新安装:
- 卸载当前CocoaPods:
sudo gem uninstall cocoapods - 切换到Ruby 3.1环境(rbenv执行
rbenv local 3.1.0,rvm执行rvm use 3.1.0),重新安装:gem install cocoapods - 验证环境:
确保pod --version which podwhich pod指向Ruby 3.1的gem目录,比如~/.rbenv/shims/pod或~/.rvm/gems/ruby-3.1.0/bin/pod。
3. 用Rosetta 2终端执行命令
若上述方法无效,完全在Rosetta 2环境下操作:
- 右键终端应用→「显示简介」,勾选「使用Rosetta打开」,重启终端。
- 执行:
gem install cocoapods pod install
4. 清理Pod缓存
缓存文件可能引发冲突,执行清理:
pod cache clean --all rm -rf Pods/ rm -rf Podfile.lock pod install
内容的提问来源于stack exchange,提问作者Aggressor
相关产品推荐
相关产品推荐

