Flutter iOS接入Facebook登录后CocoaPods报ffi架构不匹配错误
问题解答
1. 为什么此前未安装CocoaPods时项目可正常运行,现在必须安装?
- 纯Flutter项目未引入带原生iOS依赖的第三方插件时,Flutter框架自带预编译的iOS运行库,无需额外拉取原生依赖即可直接在模拟器运行,不需要用到CocoaPods。
- 你接入的
flutter_facebook_auth插件依赖Facebook官方原生iOS SDK,Flutter生态中所有带原生端实现的iOS插件,均通过CocoaPods完成原生依赖的拉取、集成工作,因此此时必须安装CocoaPods才能完成项目构建。
2. 报错解决方案
该报错核心原因是ffi(CocoaPods依赖的基础库)架构与你的Mac芯片架构不匹配,90%以上出现在Apple Silicon(M1/M2等M系列)芯片的设备上,按以下步骤操作即可解决:
- 先清理项目缓存,在项目根目录执行以下命令:
flutter clean rm ios/Podfile.lock ios/Pods -rf
- 修复
ffi架构兼容问题,根据你的芯片类型选择对应操作:
- 若为Apple Silicon系列芯片,直接执行:
sudo arch -arm64 gem install ffi
- 若为Intel芯片,或上面的命令执行失败,可右键终端应用点击「显示简介」,勾选「使用Rosetta打开」,重启终端后执行:
sudo gem install ffi
- 修正你的Podfile配置错误:你当前写的
plataform: ios, '9.0'存在两处问题,一是单词拼写错误,二是flutter_facebook_auth最低支持iOS 11.0,修改为:
platform :ios, '11.0'
- 重新安装依赖,在项目ios目录下执行:
# Apple Silicon芯片执行这条 arch -arm64 pod install # Intel芯片执行这条 pod install
- 回到项目根目录重新执行
flutter run即可正常运行。
补充:无iOS开发者账号不影响模拟器调试,仅无法进行真机测试和App Store发布,你当前的场景不受影响。
内容的提问来源于stack exchange,提问作者Denis Ken
相关产品推荐
相关产品推荐

