如何解决Flutter iOS构建时出现的Ruby相关ffi LoadError报错?
问题原因
该报错是macOS自带的2.6版本系统Ruby与ffi 1.15.4依赖版本不兼容导致的,M系列芯片的Mac设备触发该问题的概率更高,系统Ruby的读写权限限制也会导致依赖加载失败。
解决方案
按以下步骤操作即可解决:
- 优先使用非系统版本的Ruby,避免修改系统Ruby触发权限问题,可通过Homebrew安装新版Ruby:
- 若未安装Homebrew可先完成安装,已安装直接跳过该步
- 执行命令安装Ruby:
brew install ruby - 根据你使用的终端类型配置环境变量:
- zsh终端:M系列芯片执行
echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc,Intel芯片执行echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc,执行完成后运行source ~/.zshrc生效 - bash终端:将上述命令中的
~/.zshrc替换为~/.bash_profile后执行即可
- zsh终端:M系列芯片执行
- 执行
ruby -v验证版本,确认输出不是2.6.x的系统版本即为配置成功
- 重新安装ffi依赖:
通用安装命令:sudo gem install ffi
若仍报错可指定架构安装:M系列芯片执行sudo arch -arm64 gem install ffi,Intel芯片执行sudo arch -x86_64 gem install ffi - 清理Flutter项目iOS缓存后重新构建:
- 进入项目ios目录:
cd ios - 清理旧的依赖文件:
rm -rf Pods Podfile.lock - 重新安装iOS依赖:
pod install - 返回项目根目录重新执行Flutter iOS构建命令即可
- 进入项目ios目录:
内容的提问来源于stack exchange,提问作者satheesh ck
相关产品推荐
相关产品推荐

