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

Cordova iOS应用iOS15启动卡在启动页未创建WKWebView原因排查

问题根因分析

首先先区分日志里的非相关报错和核心报错:

  • 开头的_LSSchemaConfigureForStore Code=-10817 是Xcode模拟器自身的缓存哈希校验错误,仅在模拟器环境出现,真机运行不会触发,和卡启动屏问题无关
  • 批量出现的com.apple.commcenter.coretelephony.xpc连接失效报错是iOS模拟器缺少蜂窝通信组件导致的通用提示,不影响应用核心流程
  • 末尾的OneSignal must contain app_id parameter 错误是结果而非原因:WKWebView未完成加载,Cordova的JS桥没有初始化,插件拿不到配置文件里的app_id参数才会报这个错

核心触发点是日志里的WebKit错误:WebPageProxy::didFailProvisionalLoadForFrame: domain=WebKitErrorDomain, code=102, isMainFrame=1,对应提示Frame load interrupted。WebKit错误码102代表帧加载被意外中断,这是WKWebView没有完成创建、一直停留在启动屏的直接原因,在iOS14+系统上Cordova应用触发这个错误的常见场景有三类:

  • 旧版启动屏插件兼容问题:6.0.0以下版本的cordova-plugin-splashscreen没有适配iOS14+的应用生命周期变化,当WebView首次加载被系统或其他插件打断时,插件会错误拦截后续的加载重试逻辑,既不重新触发首页加载,也不隐藏启动屏
  • 本地文件加载权限问题:6.2.0以下版本的cordova-ios平台在iOS14+上加载本地index.html时存在权限校验bug,系统会拦截WebView对本地沙盒文件的访问,触发加载中断
  • 启动阶段插件冲突:旧版OneSignal等会在应用启动第一时间初始化的插件,会在iOS14+上抢占主线程资源、触发权限弹窗,打断WKWebView的首次加载流程,而旧版Cordova平台没有内置加载中断的重试机制,直接导致初始化卡死
修复步骤
  • 升级核心依赖:将cordova-ios平台升级到6.2.0及以上版本,cordova-plugin-splashscreen升级到6.0.2及以上版本,新版本已经修复了iOS14+上WebView加载中断不重试、启动屏无法自动隐藏的已知问题
  • 校验配置文件:检查config.xml中的<content>标签是否正确指向入口文件index.html,确认配置中开启了WKWebView的本地文件访问权限,删除所有和UIWebView相关的过时配置
  • 排查插件冲突:临时移除OneSignal等自启动第三方插件后重新运行,如果能正常进入应用,将对应插件升级到适配iOS15的最新版本,调整插件初始化逻辑,不要在WKWebView首次加载完成前执行网络请求、权限申请操作
  • 如果仅在模拟器环境出现问题,先执行模拟器的「Erase All Content and Settings」重置操作,清除模拟器缓存的哈希校验错误,优先使用真机复测确认问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:06:23