配置Firebase后在VS Code中运行Flutter iOS模拟器遭遇CocoaPods及ffi权限错误求助
解决你的Flutter iOS模拟器运行问题
你这遇到了两个关联的问题:CocoaPods的平台配置错误,以及Ruby gem的权限问题,我来帮你一步步搞定:
1. 先修复CocoaPods的平台指定错误
这个错误是因为你的Podfile没有明确指定iOS版本,CocoaPods自动分配了旧版本9.0,和你模拟器的iOS15.2不兼容。
- 打开你的Flutter项目,找到
ios/Podfile文件(在项目的ios子目录下) - 在文件开头添加或修改这一行代码:
(如果你的项目需要适配iOS15+,也可以改成platform :ios, '12.0''15.0',Flutter官方推荐最低iOS版本为12.0) - 保存Podfile后,打开终端进入项目的ios目录:
cd ios - 执行命令重新安装CocoaPods依赖:
pod install
2. 解决ffi gem的权限问题
你碰到的Gem::FilePermissionError,是因为系统自带的Ruby目录(/Library/Ruby/Gems/2.6.0)需要管理员权限才能修改。直接用sudo能临时解决,但长期来看容易引发其他问题,更推荐用Ruby版本管理器来管理自己的Ruby环境:
方法一:用rbenv管理Ruby版本(推荐)
- 如果你还没装Homebrew,先执行安装命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 用Homebrew安装rbenv:
brew install rbenv - 把rbenv添加到shell配置文件里(用zsh就改
~/.zshrc,用bash就改~/.bash_profile):echo 'eval "$(rbenv init -)"' >> ~/.zshrc - 重启终端,或者让配置立即生效:
source ~/.zshrc - 安装一个较新的Ruby版本(比如3.2.2):
rbenv install 3.2.2 - 设置全局使用这个Ruby版本:
rbenv global 3.2.2 - 现在再执行修复ffi的命令就不会有权限问题了:
gem pristine ffi --version 1.14.2
方法二:临时用sudo解决(不推荐长期使用)
如果你只是想快速解决当前问题,可以直接用管理员权限执行命令:
sudo gem pristine ffi --version 1.14.2
输入你的Mac密码后回车执行即可。
完成以上两步后,回到VS Code重新执行“无调试运行”,应该就能正常在iPhone 8模拟器上启动你的Flutter项目了。
内容的提问来源于stack exchange,提问作者ismail
相关产品推荐
相关产品推荐

