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

Flutter iOS应用在Xcode 16.3上编译Firebase gRPC-Core时出错

Flutter iOS应用在Xcode 16.3上编译Firebase gRPC-Core时出错

最近我在开发一个基于Firebase的Flutter iOS项目,碰到了编译失败的问题,先跟大家说说我的环境配置:

  • macOS版本:macOS Sequoia (15.x)
  • Xcode版本:Xcode 16.3
  • Flutter版本:3.x
  • Firebase SDK版本:10.25.0(由firebase_core自动解析)
  • gRPC-Core版本:1.62.5(由CocoaPods解析)

当我尝试为iOS模拟器构建应用时,编译直接失败,报错信息如下:

Parse Issue (Xcode): A template argument list is expected after a name prefixed by t

我整理的几个可行解决方法

这个错误大概率是因为Xcode 16.3对C++模板语法的检查更严格了,而旧版的gRPC-Core代码里有不符合新规则的地方,试试下面这些步骤:

  1. 升级gRPC-Core到兼容版本
    在项目的ios/Podfile里手动指定更高版本的gRPC-Core(比如1.64.0及以上,这些版本修复了和Xcode 16.x的兼容问题):

    pod 'gRPC-Core', '>= 1.64.0'
    

    然后进入iOS目录执行pod update gRPC-Core,之后再重新构建项目。

  2. 彻底清理构建缓存
    缓存有时候会搞出各种奇怪的问题,先清干净试试:

    • 在Xcode里按Cmd+Shift+K清理构建文件夹,或者通过菜单Product > Clean Build Folder操作
    • 回到项目根目录执行flutter clean,接着flutter pub get
    • 再进入iOS目录执行pod deintegrate,之后重新pod install
  3. 更新Firebase相关依赖
    当前用的Firebase SDK 10.25.0可能和Xcode 16.3兼容性不够,试试升级到最新稳定版:

    flutter pub upgrade firebase_core # 这里替换成你项目里用到的所有Firebase库,比如firebase_auth、firebase_firestore等
    

    升级完成后重新执行pod install。

  4. 调整Xcode的C++编译设置
    如果上面的方法都没效果,可以尝试放宽Xcode的语法检查规则:

    • 打开Xcode项目,选中你的应用target
    • 进入Build Settings,搜索C++ Language Dialect,修改为GNU++17或者GNU++14
    • 再搜索C++ Standard Library,改成libstdc++(注意这个可能会带来其他兼容性问题,建议优先尝试前面的方法)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 17:44:34