ios - chrome - debug iphone safari on windows
Depure iOS 6+7 Mobile Safari utilizando las DevTools de Chrome (2)
iOS 6 viene con soporte integrado para la depuración remota ( screencast de 1 minuto ). Funciona bien con el nuevo Safari Web Inspector, que parece ser un tenedor de 1 año de WebKit Inspector. Se pierden algunas características tales como la edición JS y la inspección de marcos WebSocket.
El inspector web de Safari utiliza el protocolo de depuración remota WebKit. Sin embargo, Safari no usa TCP / HTTP como capa de transporte, por lo que es incompatible con Chrome.
dice Timothy Hatcher (también conocido como Xenon), empleado de Apple
- ¿Qué usa Safari para la capa de transporte?
- ¿Puedo hacer un proxy desde esta misteriosa capa de transporte a HTTP para que funcione con Chrome DevTools?
De acuerdo con https://github.com/andydavies/node-iosdriver ,
Safari utiliza los mismos comandos de depuración que Chrome, pero se envuelve como listas binarias sobre RPC en lugar de JSON sobre websockets.
Entonces, sí, sería posible escribir un proxy.
Encontré este hilo mirando las conexiones TCP que Safari estaba haciendo mientras estaba conectado al inspector MobileSafari, viendo que estaba conectado a un proceso llamado webinspectord
y Google que:
# 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
El proyecto iOS WebKit Debug Proxy lo habilita.
Para comenzar, instale con homebrew:
brew install ios-webkit-debug-proxy
Ejecute el simulador (si ejecuta el simulador):
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
Ejecute el proxy:
ios_webkit_debug_proxy
Verificar errores
Busque en el dispositivo un mensaje de error:
No se pudo conectar a lockdownd. Saliendo .: No hay tal archivo o directorio. No se ha podido adjuntar el inspector ios_webkit_debug_proxy
Luego, revise el dispositivo para ver un mensaje como este (ejemplo de iOS 7)
Confiar en la computadora actualmente conectada?
Elige "Confiar" e intenta volver a ejecutar el proxy:
ios_webkit_debug_proxy
Abra devtools por defecto
A continuación, abra http://localhost:9221
Las DevTools son, por defecto, una versión anterior (de Chrome 18 alrededor de marzo de 2012).
Pruebe los dispositivos modernos
Debido a cambios en el protocol , es posible que las partes de la interfaz moderna de DevTools no funcionen por completo. Puedes intentar abriendo
chrome-devtools://devtools/bundled/inspector.html?ws=localhost:9222/devtools/page/2
donde los valores de port
y page
son los valores que está viendo desde http://localhost:9221
. De nuevo, esto puede ser un error.
Lea más documentos en la página del proyecto ios-webkit-debug-proxy .
Actualización: Esto también funciona con iOS7 . Actualización : se agregaron nuevas instrucciones fronto de devtools a través de patrick . Actualización : se cambió devtools.html a inspector.html para Chrome 45 , y el nuevo ws
pirateó a través de Scheintod.