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

升级Xcode 14.0.1后Pod中WKNavigationDelegateEvents+Rx编译报错

解决方案

1. 优先升级RxWebKit版本

这个问题是RxWebKit适配Xcode14时的已知兼容性问题,最新版本已修复该错误:

  • 修改Podfile,指定兼容Xcode14的RxWebKit版本:
    pod 'RxWebKit', '~> 6.5.0'
    
  • 执行终端命令更新依赖:
    pod update RxWebKit
    

2. 手动修改报错代码(无法升级依赖时)

如果项目受限于依赖无法升级,可以直接修改WKNavigationDelegateEvents+Rx文件中的代码,调整类型转换写法,让Xcode能明确推断类型:

替换原报错代码:

static let decidePolicyNavigationResponse = #selector(WKNavigationDelegate.webView(_:decidePolicyFor:decisionHandler:) as ((WKNavigationDelegate) -> (WKWebView, WKNavigationResponse, @escaping(WKNavigationResponsePolicy) -> Void) -> Void)?)
static let decidePolicyNavigationAction = #selector(WKNavigationDelegate.webView(_:decidePolicyFor:decisionHandler:) as ((WKNavigationDelegate) -> (WKWebView, WKNavigationAction, @escaping(WKNavigationActionPolicy) -> Void) -> Void)?)

为:

typealias NavigationResponseHandler = (WKWebView, WKNavigationResponse, @escaping (WKNavigationResponsePolicy) -> Void) -> Void
typealias NavigationActionHandler = (WKWebView, WKNavigationAction, @escaping (WKNavigationActionPolicy) -> Void) -> Void

static let decidePolicyNavigationResponse = #selector(WKNavigationDelegate.webView(_:decidePolicyFor:decisionHandler:)) as ((WKNavigationDelegate) -> NavigationResponseHandler)?
static let decidePolicyNavigationAction = #selector(WKNavigationDelegate.webView(_:decidePolicyFor:decisionHandler:)) as ((WKNavigationDelegate) -> NavigationActionHandler)?

3. 清理缓存确保生效

  • 按下Cmd+Shift+K清理Xcode的Build文件夹
  • 删除DerivedData目录(路径可通过Xcode偏好设置 -> 位置 查看)
  • 重新执行pod install后再编译项目

内容的提问来源于stack exchange,提问作者Joseph Chan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:40:27