You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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
    
  • 清理缓存后重新构建
    不管用上面哪种方法,都一定要清理旧缓存,不然残留的配置可能还是会报错:

    1. 执行flutter clean清理Flutter项目缓存
    2. 进入iOS目录,删除Pods文件夹和Podfile.lock文件
    3. 执行pod install(或者先运行flutter pub get再执行此命令)
    4. 重启Xcode和iOS模拟器,最后运行flutter run尝试构建

另外提醒一下,如果是用flutterfire_cli配置的Firebase,记得也更新一下cli版本,避免旧配置带来的遗留问题。

备注:内容来源于stack exchange,提问作者Dhani Dzulkarnain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:45:25