使用Chrome DevToolsdebuggingiOS 6 + 7 Mobile Safari

iOS 6内置支持远程debugging( 1分钟截屏 )。 它与新的Safari Web Inspector,这似乎是WebKit督察1岁的叉很好。 它错过了一些function,如JS编辑和WebSocket框架检查。

Safari的Web检查器使用WebKit远程debugging协议。 但是,Safari不使用TCP / HTTP作为传输层,因此与Chrome不兼容。

说蒂莫西·海切尔(又名氙),苹果公司的雇员

  • Safari使用什么传输层?
  • 我可以从这个神秘的传输层到HTTP的代理,使其与Chrome开发工具的工作?

iOS WebKitdebugging代理项目启用此项。

截图

要开始使用自制软件安装:

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 

检查错误

在设备上查看错误消息:

无法连接到locking。 退出:没有这样的文件或目录。 无法附加检查器ios_webkit_debug_proxy

然后检查设备是否有这样的提示(iOS 7示例:)

信任当前连接的计算机?

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

 ios_webkit_debug_proxy 

打开默认devtools

然后打开http://localhost:9221

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

尝试现代devtools

由于协议的变化,现代DevTools前端的部分可能无法完全工作。 你可以尝试打开

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

portpage值是从http://localhost:9221看到的值。 再次,这可能确实是越野车。

在ios-webkit-debug-proxy项目页面上阅读更多文档。


更新:这也适用于iOS7 。 更新 :通过帕特里克添加新的devtools前端说明.. 更新 :改变devtools.html为inspector.html 为Chrome 45 ,和新的ws通过Scheintod黑客。

根据https://github.com/andydavies/node-iosdriver

Safari使用与Chrome相同的debugging命令,但通过RPC封装为二进制plists,而不是WebSockets上的JSON。

所以,是的,可以写一个代理。

我通过查看Safari连接到MobileSafari检查器时正在build立的TCP连接,发现它已连接到名为webinspectord的进程并使用Googlesearch来发现此线程 :

 # pgrep -lf /Applications/Safari.app 33170 /Applications/Safari.app/Contents/MacOS/Safari -psn_0_21144617 # lsof -p 33170 | grep TCP Safari 33170 ryan 16u IPv6 0x799d5f43b472a241 0t0 TCP localhost:54892->localhost:27753 (ESTABLISHED) # lsof -i :27753 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME launchd 371 ryan 42u IPv6 0x799d5f43b472aa01 0t0 TCP localhost:27753 (LISTEN) Safari 33170 ryan 16u IPv6 0x799d5f43b472a241 0t0 TCP localhost:54892->localhost:27753 (ESTABLISHED) webinspec 33182 ryan 6u IPv6 0x799d5f43b472aa01 0t0 TCP localhost:27753 (LISTEN) webinspec 33182 ryan 7u IPv6 0x799d5f43b181a621 0t0 TCP localhost:27753->localhost:54892 (ESTABLISHED) # ps p 33182 PID TT STAT TIME COMMAND 33182 ?? S 0:00.28 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/usr/libexec/webinspectord