阅读 1520

企业证书签名的 iOS App 内 WKWebView/JavaScriptCore 的调试支持

背景

众所周知,在iOS平台上,要想调试App中的WKWebViewJavaScriptCore中运行的javascript代码,一般都要求用XcodeApp工程以Debug配置布署到手机上,再使用PCSafariDeveloper菜单中的对应选项进行调试。

问题

公司的内测包和线上包一般都是使用Disrubution或企业证书打包,经常出现问题需要现场排查的也是这两类包。这种包Safari调试功能不能支持。

方案

  1. App中的Debugger模块在运行时得到WKWebViewJavaScriptCore对象地址,通过使用WebKit内部C++ API访问其调试消息相关接口
    • 消息接口的输入和输出支持的是WebKit调试协议数据
  2. App内起一个WebSocket服务器,负责将外部请求转发给Debugger模块,转发时还需要将外部传进来的Chrome调试协议数据转化为WebKit调试协议数据
  3. PCChrome打开以下地址(填入正确的WebSocket服务器的IP地址和端口号),连接步骤2中的服务器,即可实现真机调试。
    chrome-devtools://devtools/bundled/inspector.html?ws=[IP地址]:[端口号]
    复制代码

最后,欢迎大家关注我的微信公众号,有空多多交流

文章分类
iOS
文章标签