如何连接到 iPhone 的 webkit 调试器?

Posted

技术标签:

【中文标题】如何连接到 iPhone 的 webkit 调试器?【英文标题】:How to connect to iPhone's webkit debugger? 【发布时间】:2012-12-26 04:12:21 【问题描述】:

ios 6 的新功能是,您可以在桌面 safari 中调试在设备或模拟器上运行的 htmljavascript。我想,这个功能是基于Webkit Remote Debugging Protocol。

如何在没有桌面 Safari 的情况下连接到在 iPhone 上运行的 webkit?

我可以使用 websockets 为在 android 上运行的移动 Chrome 执行此操作,但如何为 iOS 设备执行此操作?

【问题讨论】:

weinre 适用于 iOS 设备;我在 Linux 机器上通过 Chrome 使用它来调试 Android 和 iOS。 ...好吧,当我说它“有效”时,我的意思是它的功能达到了它的能力极限。 Debug iOS 6 Safari using latest Chrome DevTools的可能重复 【参考方案1】:

ios-webkit-debug-proxy 项目(来自 Google!)就是这样做的。

【讨论】:

代理推荐for Chrome DevTools,你应该使用remotedebug-ios-webkit-adapter,其中does not currently work。【参考方案2】:

您想查看此代码 https://github.com/leftlogic/remote-debug/tree/master/safari - 尽管它在实际涉及使用 __rpc_forwardSocketData 的 RPC 调用时会失败。

如果您有任何想法,为什么我们中的一些人会感兴趣!

【讨论】:

上面的代码现在可以工作了(或发布的修复请求)libimobiledevice.org 您可能也会感兴趣。 是的。 Webkit 协议通过锁定协议和 usbmuxd 套接字与 iphone 通信。 Desktop Safari 通过lockdownd 协议启动ssl 会话,然后以某种方式在远程设备上启动webkit 调试会话。问题是 ssl 会话。我可以嗅探这些数据包,但我无法解码它们。 这个项目展示了如何为 iOS Simulator github.com/andydavies/node-iosdriver 物理 iPhone/iPad 是我的下一个目标 我尝试使用 libimobiledevice 并成功启动了 webinspector 服务(我希望它已启动)。我还设法将 iphone 的 webinspectord 转发到本地端口。但现在呢?我试图修改 node-iosdriver 以与我的本地端口通信,但它也不起作用......有什么想法吗? node-iosdriver 仅针对模拟器进行了测试,其中有一些命令绝对仅适用于模拟器。我会启动wireshark,看看你能不能看到流量。【参考方案3】:

您需要打开 iPhone 模拟器并浏览到一个网站。

然后打开 Safari 并从菜单栏中选择“开发”。有一个名为“iPhone Simulator”的选项。

如果你将鼠标悬停在上面,你可以看到模拟器所有打开的网站。

这为您提供了与 Safari 相同的检查器。您甚至可以在 iPhone 模拟器中看到悬停的元素。

【讨论】:

感谢您的回答。好吧,问题是如何在没有桌面 Safari 的情况下进行连接。 我认为这是不可能的:|

以上是关于如何连接到 iPhone 的 webkit 调试器?的主要内容,如果未能解决你的问题,请参考以下文章

电脑上safari如何给iphone调试

如何找到连接到iphone的充电器类型?

如何将iphone设备连接到非iphone设备?

如何将 iPhone 连接到蓝牙设备?

如何获取 iPhone 应用程序的崩溃报告

无法将运行 iOS 4.2.1 的越狱 iPhone 3G 连接到 Xcode 进行开发