Flutter iOS项目pod install报错 无法在iPhone 11 Pro Max启动应用
Flutter iOS真机运行pod install触发ffi Bus Error报错解决方案
问题复现特征
- 运行环境:ARM架构(Apple Silicon系列芯片)macOS,系统预装Ruby版本为
2.6.8p205 (2021-07-07 revision 67951) [universal.arm64e-darwin21] - 触发场景:Debug模式下向iPhone 11 Pro Max真机启动
lib/main.dart入口,执行到Running pod install步骤时CocoaPods运行崩溃 - 前置流程:依赖拉取阶段正常获取Flutter、cloud_firestore、firebase_auth、firebase_core的podspec文件,所有Firebase系列插件统一使用firebase_core指定的
8.10.0版本Firebase SDK - 核心报错:依赖解析阶段
ffi-1.15.5库执行attach函数触发Bus Error,Ruby环境直接崩溃,崩溃日志可在~/Library/Logs/DiagnosticReports或/Library/Logs/DiagnosticReports路径下查看 - 最终结果:
pod install执行失败,应用无法安装到真机启动,报错提示明确指向ARM架构macOS下CocoaPods的ffi依赖兼容问题
修复步骤
- 安装x86_64架构适配的ffi依赖,打开终端执行以下命令,执行过程中需要输入本机开机密码,输入时终端无字符显示属于正常现象,输入完成按回车即可:
arch -x86_64 sudo gem install ffi - 进入项目iOS目录,清理残留的CocoaPods构建缓存和旧配置:
cd 你的Flutter项目路径/ios pod deintegrate pod cache clean --all rm -f Podfile.lock
- 返回项目根目录,清理Flutter旧构建缓存并重新拉取Dart依赖:
cd .. flutter clean flutter pub get
- 重新执行Debug运行,即可正常完成
pod install依赖解析流程,顺利安装到iPhone 11 Pro Max设备启动。
兼容兜底方案
如果后续执行pod相关命令仍偶现架构兼容报错,可在所有pod相关命令前增加arch -x86_64前缀,强制通过Rosetta 2转译运行CocoaPods逻辑,彻底规避ARM原生Ruby环境下的ffi兼容问题,示例命令:arch -x86_64 pod install --repo-update
内容的提问来源于stack exchange,提问作者Muzammil Ahmad
相关产品推荐
相关产品推荐

