A proxy that enables Chrome DevTools Protocol debugging for Safari and WebViews on iOS devices and simulators.
iOS WebKit Debug Proxy is a command-line tool that enables remote debugging of web content on iOS devices. It solves the problem of debugging Safari and WebView-based applications on iOS by acting as a proxy server that translates the Chrome DevTools Protocol into the WebKit Inspector Protocol used by iOS. This allows developers to use desktop browser developer tools to inspect, debug, and profile web pages running on iOS simulators and physical devices.
Web and mobile developers who need to debug Safari browser sessions, hybrid apps using WebViews, or Progressive Web Apps (PWAs) on iOS devices and simulators.
Developers choose this tool because it provides a standardized way to use powerful, familiar DevTools (like Chrome's) for iOS web debugging, bypassing the limitations of Safari's built-in remote inspector. It's the de facto open-source solution for cross-platform iOS web debugging workflows.
A DevTools proxy (Chrome Remote Debugging Protocol) for iOS devices (Safari Remote Web Inspector).
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Acts as a WebSocket proxy that translates Chrome DevTools Protocol to WebKit Inspector Protocol, enabling the use of familiar Chrome DevTools for iOS web debugging, as described in the design overview.
Works with both physical iOS devices and simulators, with automatic port assignment for simultaneous debugging sessions, detailed in the port configuration section.
Supports various DevTools frontends like Chrome, Safari, and Firefox via Valence, and allows custom UI URLs with the -f argument, as shown in the usage examples.
Designed to do one thing well—protocol translation—without bloat, adhering to the Unix philosophy mentioned in the project description.
The README admits major discrepancies between Chrome DevTools Protocol and WebKit Inspector Protocol, limiting compatibility with newer Chrome versions and requiring workarounds like alternative frontends.
Installation on Linux requires building multiple dependencies (e.g., libplist, libimobiledevice) from source, which is error-prone and time-consuming, as outlined in the setup instructions.
Depends on iTunes for Windows and usbmuxd for Linux, adding extra setup steps and potential points of failure, noted in the troubleshooting section.
Troubleshooting highlights issues with specific iOS versions (e.g., iOS 10+, 12.2), requiring proxy updates for compatibility, which can delay debugging workflows.