Highlights
✨ Debug iOS JSContexts and Safari pages from Chrome DevTools, VS Code and WebStorm
pymobiledevice3 webinspector cdp now debugs a device's bare JSContexts (anything that set isInspectable = true), not just WKWebView pages — with breakpoints, stepping and a live Debug Console that all behave the way each editor expects.
pymobiledevice3 webinspector cdpOpen http://127.0.0.1:9222/ to browse every inspectable page and JSContext on the device. Each entry carries a ready-to-copy VS Code attach configuration; JSContexts are numbered and ordered so you can tell a process's contexts apart.
✨ Pause new JSContexts on launch
Like Safari's "Automatically Show / Pause Connecting to JSContexts", the bridge can attach to every JSContext an app creates before it runs and hold it. Turn it on with --pause-new-targets, or the switch on the landing page:
pymobiledevice3 webinspector cdp --pause-new-targetsA newly created context is listed with a paused badge; open it and the debugger lands on its first statement, so a breakpoint set before it runs is hit.
🐛 Breakpoints and debugger statements now stop in every editor
A debugger statement and a breakpoint hit inside a JSContext are now surfaced correctly to Chrome DevTools, VS Code and WebStorm (previously the pause reached the device but the editor silently ran past it), and breakpoints bind on the URL-less scripts a JSContext produces.
What's Changed
- 6e83318 cdp: Debug JSContexts over the bridge - pause on launch, editor-compatible pauses, breakpoints (#1914) (@doronz88)
- d732779 docs: Document CDP debugging of Safari pages and JSContexts (#1914) (@doronz88)
Full Changelog: v11.5.0...v11.6.0