Mac M1添加cloud_firestore后iOS模拟器无法运行,求彻底解决方法
解决Mac M1上Flutter cloud_firestore依赖安装时BoringSSL-GRPC克隆失败的问题
以下是针对Mac M1芯片、Flutter项目添加cloud_firestore后iOS模拟器启动失败(BoringSSL-GRPC克隆报错RPC failed; curl 18)的彻底解决方案:
1. 调整Git配置解决克隆超时
克隆报错大多源于大文件传输中断,先修改Git全局缓存设置:
git config --global http.postBuffer 524288000 git config --global http.maxRequestBuffer 100M git config --global core.compression 0
2. 更新并清理CocoaPods
确保CocoaPods为最新版本,同时清空旧缓存:
# 用gem更新(若之前通过gem安装) sudo gem install cocoapods # 或用Homebrew更新(若用brew管理依赖) brew upgrade cocoapods # 清理所有Pod缓存 pod cache clean --all
3. 修改Flutter iOS端的Podfile
打开项目ios/Podfile,完成两处关键修改:
3.1 开头添加静态框架声明
在文件顶部添加(确保最低iOS版本符合cloud_firestore要求):
platform :ios, '13.0' use_frameworks! :linkage => :static
3.2 完善post_install钩子
替换原有的post_install内容,强制指定模拟器支持的架构:
post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) # 适配M1芯片的架构设置 target.build_configurations.each do |config| config.build_settings['ARCHS[sdk=iphonesimulator*]'] = 'x86_64 arm64' config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO' config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' end end end
4. 清理项目并重新构建
执行以下命令彻底清理后重新安装依赖:
# 清理Flutter项目缓存 flutter clean # 进入iOS目录,移除旧Pods和锁文件 cd ios rm -rf Pods Podfile.lock # 重新获取Flutter依赖 cd .. flutter pub get # 重新安装Pods cd ios pod install
5. 用Rosetta模式运行终端(可选)
若以上步骤仍失败,尝试用Rosetta兼容模式运行终端:
- 找到「终端」App,右键选择「显示简介」
- 勾选「使用Rosetta打开」,重启终端
- 重新执行上述
pod install命令
6. 手动克隆BoringSSL-GRPC(终极方案)
若Git克隆始终失败,手动克隆仓库并让CocoaPods使用本地路径:
# 克隆BoringSSL仓库到本地目录(比如Documents) git clone https://github.com/google/boringssl.git ~/Documents/boringssl
然后在ios/Podfile中添加指定路径的依赖:
pod 'BoringSSL-GRPC', :path => '~/Documents/boringssl'
再重新执行pod install。
内容的提问来源于stack exchange,提问作者Hafizur Rahman
相关产品推荐
相关产品推荐

