iOS6附带了对远程调试(1 minute screencast)的内置支持.它与新的Safari Web Inspector配合得很好,它似乎是WebKit Inspector的一个1年历史的分支.它缺少一些功能,如JS编辑和WebSocket框架判断.

Safari的Web判断器确实使用WebKit远程调试协议.然而,Safari没有使用TCP/HTTP作为传输层,因此与Chrome不兼容.

says Timothy Hatcher (aka Xenon), Apple employe

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

推荐答案

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

屏幕截图

要开始,请使用brew 软件安装:

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

判断错误

查看设备上的错误消息:

无法连接到锁定.正在退出.:没有这样的文件或目录.无法附加判断器IOS_WebKIT_DEBUG_PROXY

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

是否信任当前连接的计算机?

Select "信任",然后try 重新运行代理:

ios_webkit_debug_proxy

打开默认的devtools

然后打开http://localhost:9221

默认情况下,DevTool是较旧的版本(从Chrome18到2012年3月左右).

试试现代的DevTools

由于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阅读更多文档.


Update:这个iOS7 as well就行了.Update:通过patrick添加了全新的DevTools前端说明.Update:将devtools.html更改为spector.html for Chrome 45,并通过Scheintod进行了新的ws攻击.

Ios相关问答推荐

使用UIGraphicsBeginIMAext创建新图像会扭曲图像 colored颜色

RN 0.63支持iOS ProMotion?

iOS SwiftUI需要不带箭头显示弹出窗口""

如何使用超薄material ,但没有浅色/填充?

检测touch 并忽略其他手势SWIFT SceneKit

用于HDR显示的CI上下文选项

objc[25442]:Swift类的扩展和类别不允许有+load方法

如何在 Swift 中存储具有关联值的协议?

Flutter iOS 键盘问题:. TextInputType.number 中缺少字符

为什么在Actor内部使用withTaskGroupwork并行运行?

更改订单时如何保存商品的位置?

var name: String 时 print(nil) 和 print(name) 的区别? = 无

为什么常量属性可能在 Swift 类中被初始化两次?

发生异常:需要 issuerId

视觉扫描无法识别 iOS16 上的 GS1 条码特殊字符

使用 CIImage 支持的 UIImage 设置 UIImageView 时发生罕见的崩溃

我们可以在 Swift 中将 struct 中的 Codable 键设置为不区分大小写吗

改变 UIView 位置的简单方法?

iOS swift从另一个数组中删除一个数组的元素

什么是强属性属性