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

更新Xcode、macOS及Flutter后iOS端Flutter App运行报错求助

解决方案:Xcode16/macOS15下flutter_inappwebview 5.8.0编译错误

这些编译错误的核心原因是flutter_inappwebview 5.8.0版本未适配Xcode16(对应WebKit API更新)和macOS15的环境变化,尤其是evaluateJavaScript方法签名变更、父类方法定义修改导致的冲突。以下是具体解决步骤:

方法一:升级flutter_inappwebview到兼容版本(推荐)

这是最彻底的解决方案,官方后续版本已修复该适配问题:

  • 打开项目根目录的pubspec.yaml,找到flutter_inappwebview依赖,将版本号更新为**^6.0.0及以上**(或直接使用最新稳定版),例如:
    dependencies:
      flutter_inappwebview: ^6.0.0
    
  • 执行以下命令更新依赖并清理缓存:
    flutter pub get
    flutter clean
    cd ios && pod install && cd ..
    
  • 重新运行iOS项目即可。

方法二:临时修改缓存源码(应急方案)

如果暂时无法升级依赖,可手动修改缓存中的源码适配新API:

  1. 打开报错的文件:/Users/你的用户名/.pub-cache/hosted/pub.dev/flutter_inappwebview-5.8.0/ios/Classes/InAppWebView/InAppWebView.swift
  2. 针对两类错误分别处理:
    • "Method does not override any method from its superclass":找到第1225行的override方法,检查父类是否还存在该方法,若不存在则删除override关键字。
    • "Ambiguous use of 'evaluateJavaScript(_:completionHandler:)'":将所有报错的evaluateJavaScript调用明确指定参数类型,例如将:
      evaluateJavaScript(script) { result, error in
          // ...
      }
      
      修改为:
      evaluateJavaScript(script, completionHandler: { result, error in
          // ...
      })
      
  3. 修改完成后重新编译项目。

方法三:验证环境配置

确保Xcode命令行工具正确指向Xcode16:

xcode-select --switch /Applications/Xcode.app/Contents/Developer

然后进入ios目录重新执行pod install,再回到项目根目录运行flutter run。

内容的提问来源于stack exchange,提问作者kapil tk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 00:45:01