ios - 使用 Chrome DevTools 调试 iOS 6+7 Mobile Safari

标签 ios safari mobile-safari google-chrome-devtools web-inspector

iOS 6 内置了对远程调试的支持 (1 minute screencast)。它与新的 Safari Web Inspector 配合得很好,它似乎是 WebKit Inspector 的 1 年前的分支。它缺少一些功能,例如 JS 编辑和 WebSocket 帧检查。

Safari's Web inspector does use the WebKit remote debugging protocol. However, Safari does not use TCP/HTTP as a transport layer, thus making it incompatible with Chrome.

says Timothy Hatcher (aka Xenon), Apple employe

  • Safari 将什么用于传输层?
  • 我可以从这个神秘的传输层创建一个代理到 HTTP 以使其与 Chrome DevTools 一起工作吗?

最佳答案

iOS WebKit Debug Proxy项目实现了这一点。

screenshot

首先,使用自制软件安装:

brew install ios-webkit-debug-proxy

运行模拟器(如果运行模拟器):

SIM_DIR=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer
  "$SIM_DIR/Applications/iPhone Simulator.app/Contents/MacOS/iPhone Simulator" \
  -SimulateApplication \
  $SIM_DIR/SDKs/iPhoneSimulator6.1.sdk/Applications/MobileSafari.app/MobileSafari

运行代理:

ios_webkit_debug_proxy

检查错误

在设备上查看错误消息:

Could not connect to lockdownd. Exiting.: No such file or directory. Unable to attach inspector ios_webkit_debug_proxy

然后检查设备是否有提示like this (iOS 7 示例:)

Trust the currently connected computer?

选择“信任”并尝试重新运行代理:

ios_webkit_debug_proxy

打开默认的开发者工具

然后打开http://localhost:9221

默认情况下,DevTools 是旧版本(从大约 2012 年 3 月的 Chrome 18 开始)。

尝试现代开发工具

由于protocol更改,部分现代 DevTools 前端可能无法完全工作。你可以打开试试

chrome-devtools://devtools/bundled/inspector.html?ws=localhost:9222/devtools/pag‌​e/2

其中 portpage 值是您从 http://localhost:9221 看到的值。同样,这可能确实有问题。

ios-webkit-debug-proxy project page 阅读更多文档.


更新: 这适用于 iOS7 as well . 更新:通过 patrick 添加了新的 devtools 前端指令.. 更新:将 devtools.html 更改为 inspector.html for Chrome 45 ,以及通过 Scheintod 进行的新的 ws hack。

关于ios - 使用 Chrome DevTools 调试 iOS 6+7 Mobile Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11361822/

相关文章:

ios - 在 iOS 上放大的输入文本类型

ios - xamarin.ios无法与vs2013一起编译

ios - Swift 4 显示/隐藏键盘查看

twitter-bootstrap - 当元素为 25% 时,Safari 显示 flex 不起作用

javascript - 防止 iOS Safari 中的方向改变

ipad - iOS6 Safari 方向改变错误?

ios - 如何使部分编程 UITableView 文本可点击?

ios - 比较 Obj-C 中的对象,为什么它们不匹配?

ios - 模仿 iOS 7 Safari 导航栏

css - iPad Safari 滚动会导致 HTML 元素消失并延迟重新出现