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

Flutter+Xcode14.3运行iOS项目遇语义错误:混合声明与代码不符C99前标准

解决Flutter iOS项目在Xcode14.3中出现的C99标准兼容错误

问题原因

该错误是由于Xcode默认配置的C语言标准低于C99,而C99之前的语法规则不允许在代码执行语句之后声明变量,要求变量声明必须放在代码块的起始位置。

解决方法

  • 修改Xcode项目语言标准配置

    1. 打开Flutter项目iOS目录下的Runner.xcworkspace文件
    2. 在左侧项目导航栏选中项目根节点
    3. 切换到Build Settings标签,在搜索框输入C Language Dialect
    4. 将对应的值修改为GNU99或C99(推荐GNU99,兼容更多语法扩展)
    5. 同步检查C++ Language Dialect,设置为GNU++98或更高版本
  • 修正原生代码的变量声明位置
    如果报错来自自定义的iOS原生代码或第三方插件的原生代码,找到对应文件,将变量声明移至代码块开头:
    错误示例:

    void demoFunc() {
        NSLog(@"test");
        int num = 5; // C99前标准不允许代码中间声明变量
    }
    

    修正后:

    void demoFunc() {
        int num = 5; // 变量声明放在代码块起始位置
        NSLog(@"test");
    }
    
  • 更新Flutter依赖插件
    部分第三方插件的原生代码可能未适配Xcode14.3的编译标准,尝试更新相关插件到最新版本,执行flutter pub get后重新编译项目

内容的提问来源于stack exchange,提问作者Mohd Shoaib Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:54:59