Mac M1构建Flutter项目安装ffi后仍报CocoaPods配置错误如何解决
M1芯片Mac构建Flutter项目重复提示安装ffi导致pod install失败解决方案
问题表现
在搭载M1系列芯片的ARM架构Mac设备上构建Flutter iOS项目时,首次收到CocoaPods配置提示,要求执行arch -x86_64 sudo gem install ffi,执行命令后重新构建仍抛出相同报错,报错信息如下:
Error: To set up CocoaPods for ARM macOS, run:
arch -x86_64 sudo gem install ffiError running pod install
Error launching application on iPhone 13.
报错会导致pod install流程中断,无法在iPhone 13模拟器上正常启动应用。
根因说明
执行官方提示的安装命令后仍报错,核心原因是三类问题:
- 终端默认以ARM原生架构运行,执行转译安装命令时路径不匹配,装出的ffi为ARM架构,无法被x86模式运行的CocoaPods识别
- Xcode命令行工具路径错位、许可协议未确认,导致CocoaPods调用编译组件失败
- 之前安装的CocoaPods来源混杂(比如同时存在gem安装版本和Homebrew安装版本),架构不兼容导致读取不到ffi依赖
分步解决流程
- 清理异常安装的旧版本ffi
打开终端执行以下命令,若提示存在多个ffi版本,选择全部版本删除即可:sudo gem uninstall ffi - 修复Xcode命令行工具配置
执行命令指定Xcode默认路径,并同意最新的开发者许可协议,避免后续组件调用权限报错:sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer sudo xcodebuild -license accept - 以正确架构安装ffi依赖
打开访达进入「应用程序」目录,找到终端App,右键选择「显示简介」,勾选使用Rosetta打开选项后重启终端。在重启后的终端中执行ffi安装命令:
如果不想修改终端默认打开方式,也可以直接在原终端执行带架构声明的完整安装命令,指定安装路径避免权限问题:sudo gem install ffiarch -x86_64 sudo gem install -n /usr/local/bin ffi - 清理CocoaPods缓存并重新安装依赖
进入Flutter项目下的ios目录,先移除旧的pod关联、重新初始化CocoaPods后再执行install:cd 你的Flutter项目根目录/ios pod deintegrate pod setup arch -x86_64 pod install - 清理Flutter构建缓存后重新运行
回到项目根目录,执行Flutter清理命令后重新拉取依赖、启动项目:cd .. flutter clean flutter pub get flutter run
特殊场景排查
如果走完上述流程仍报错,检查本地CocoaPods安装来源:如果之前通过Homebrew安装过CocoaPods,Homebrew默认安装的ARM架构版本会和gem安装的x86版本冲突,执行以下命令卸载Homebrew版本的CocoaPods后重装gem版本即可:
brew uninstall cocoapods sudo gem install -n /usr/local/bin cocoapods
内容的提问来源于stack exchange,提问作者Lingee Sai
相关产品推荐
相关产品推荐

