Flutter webview_flutter iOS端ARC语义错误求助:setInspectable:方法不存在
解决webview_flutter 4.2.0 iOS运行时的
setInspectable:语义错误 以下是几种可行的解决方法:
升级依赖版本
webview_flutter 4.2.0搭配的webview_flutter_wkwebview 3.6.0存在API兼容问题,FWFWebView类未声明setInspectable:方法。直接升级依赖到匹配的稳定版本即可解决:- 在项目根目录执行命令:
flutter pub upgrade webview_flutter - 或者手动修改
pubspec.yaml中webview_flutter的版本为最新稳定版,再执行flutter pub get
- 在项目根目录执行命令:
清理缓存并重新构建
旧缓存的依赖代码可能导致冲突,按以下步骤清理后重新构建:- 执行
flutter clean清理Flutter项目缓存 - 删除iOS端Pod缓存:
rm -rf ios/Pods ios/Podfile.lock - 重新拉取依赖:
flutter pub get - 进入iOS目录执行
pod install - 回到项目根目录运行
flutter run
- 执行
临时修改iOS原生代码(不推荐长期使用)
如果暂时无法升级依赖,可手动修正报错代码:- 找到报错文件:
/Users/xxx/.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-3.6.0/ios/Classes/FWFWebViewHostApi.m - 定位到第203行的
[self.webView setInspectable:value];代码,替换为WKWebView原生的属性赋值方式,并保留版本判断:if (@available(iOS 16.4, *)) { self.webView.inspectable = value; }
注意:修改pub缓存中的代码会在后续依赖更新时被覆盖,仅作为临时应急方案。
- 找到报错文件:
检查iOS部署目标版本
确认Xcode中项目的iOS Deployment Target是否满足依赖要求:- 打开iOS项目的
Runner.xcworkspace - 在项目设置中查看Deployment Target,确保不低于webview_flutter要求的最低版本(当前为iOS 11.0),若代码中针对iOS 16.4做了判断,可根据实际需求调整部署目标或版本判断逻辑
- 打开iOS项目的
内容的提问来源于stack exchange,提问作者KeroJohn97
相关产品推荐
相关产品推荐

