更新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:
- 打开报错的文件:
/Users/你的用户名/.pub-cache/hosted/pub.dev/flutter_inappwebview-5.8.0/ios/Classes/InAppWebView/InAppWebView.swift - 针对两类错误分别处理:
- "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 // ... })
- "Method does not override any method from its superclass":找到第1225行的
- 修改完成后重新编译项目。
方法三:验证环境配置
确保Xcode命令行工具正确指向Xcode16:
xcode-select --switch /Applications/Xcode.app/Contents/Developer
然后进入ios目录重新执行pod install,再回到项目根目录运行flutter run。
内容的提问来源于stack exchange,提问作者kapil tk
相关产品推荐
相关产品推荐

