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

升级Xcode16后Flutter集成iOS项目编译失败求助

解决方案:Xcode 16 升级后 Flutter iOS 编译失败问题处理

核心问题:flutter_inappwebview 5.4.0 兼容性适配

这个版本未适配Xcode 16(对应iOS 18 SDK)的API变更,是导致编译失败的主要原因,优先处理该依赖:

  • 升级 flutter_inappwebview 至最新稳定版
    在pubspec.yaml中更新依赖版本(当前推荐6.x及以上),执行以下命令同步依赖:

    flutter pub get
    cd ios && pod install
    

    新版本已修复evaluateJavaScript方法签名匹配、API废弃替换(如keyWindow、statusBarStyle的替代实现)等问题。

  • 无法升级大版本时的临时修复
    手动修改库源码适配:

    1. 定位到ios/Pods/flutter_inappwebview/Classes目录下的相关文件
    2. 修正evaluateJavaScript方法签名,与WKWebView父类方法保持一致:
      - (void)evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^)(id, NSError * _Nullable))completionHandler {
          // 保留原有业务逻辑,确保参数、返回值与父类匹配
      }
      
    3. 替换废弃API:
      • 将[UIApplication sharedApplication].keyWindow替换为:
        UIWindow *keyWindow = [[UIApplication sharedApplication].connectedScenes.allObjects firstObject].delegate.window;
        
      • 将statusBarStyle相关逻辑替换为UIStatusBarManager的对应实现。

wakelock 库 C 语法警告处理

  • 优先升级wakelock至最新版本,新版本已适配Xcode 16的C编译器语法规范。
  • 若无法升级,根据Xcode警告提示,直接修改wakelock iOS源码中C文件的语法问题(如变量声明位置、类型转换等)。

通用编译缓存清理

执行以下命令清理缓存后重新编译:

flutter clean
cd ios && pod deintegrate && pod install

同时在Xcode中选择Product > Clean Build Folder清空本地构建缓存。

内容的提问来源于stack exchange,提问作者Psalm David

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:15:57