Flutter在iOS模拟器(Xcode 16.3)构建失败:修改Podfile后仍提示Unsupported option '-G'
Flutter在iOS模拟器(Xcode 16.3)构建失败:修改Podfile后仍提示Unsupported option '-G'
嘿,我之前也踩过这个坑!Xcode 16.3对CMake编译参数的兼容性要求变严格了,而旧版本的Firebase SDK(或其依赖的第三方库)还在使用已经被废弃的-G参数,这直接导致了构建失败。结合我自己的解决经验,给你几个可行的方案:
优先升级Firebase SDK版本
你提到的Firebase SDK版本写的是'1,应该是输入不全了。目前Firebase官方已经在10.24.0及以上的稳定版本中修复了Xcode 16的兼容性问题。建议你先把pubspec.yaml里所有Firebase相关依赖(比如firebase_core、firebase_auth等)升级到最新稳定版,然后执行flutter pub get更新依赖。手动移除不支持的
-G参数(如果暂时无法升级SDK)
要是因为项目限制没法马上升级SDK,可以在iOS目录下的Podfile里添加一段post_install钩子代码,自动清理掉那个不兼容的参数:post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| # 移除C编译参数里的-G选项 if config.build_settings['OTHER_CFLAGS'] config.build_settings['OTHER_CFLAGS'] = config.build_settings['OTHER_CFLAGS'].reject { |flag| flag.start_with?('-G') } end # 移除C++编译参数里的-G选项 if config.build_settings['OTHER_CPLUSPLUSFLAGS'] config.build_settings['OTHER_CPLUSPLUSFLAGS'] = config.build_settings['OTHER_CPLUSPLUSFLAGS'].reject { |flag| flag.start_with?('-G') } end end end end清理缓存后重新构建
不管用上面哪种方法,都一定要清理旧缓存,不然残留的配置可能还是会报错:- 执行
flutter clean清理Flutter项目缓存 - 进入iOS目录,删除
Pods文件夹和Podfile.lock文件 - 执行
pod install(或者先运行flutter pub get再执行此命令) - 重启Xcode和iOS模拟器,最后运行
flutter run尝试构建
- 执行
另外提醒一下,如果是用flutterfire_cli配置的Firebase,记得也更新一下cli版本,避免旧配置带来的遗留问题。
备注:内容来源于stack exchange,提问作者Dhani Dzulkarnain
相关产品推荐
相关产品推荐

