Iniciar navegadores móviles con webkit remote debugging ON


En Google I/O 2011: Chrome Dev Tools Reloaded, Paul Irish y Pavel Feldman introdujo nueva depuración remota característica - que fue de paso incluido en webkit.

--

Esta es una gran noticia, particularmente para los desarrolladores web móviles. Pero ¿cómo lo habilitamos, por ejemplo, el lanzamiento de IOS simulator, o simplemente ejecutar Safari Mobile en un iPhone? (para chrome esto se hace tradicionalmente con la opción --remote-debugging-port=9222 durante el lanzamiento).

I intentado habilitar el modo de desarrollador en la configuración de safari (Settings > Safari > Developer > Debug Console: ON) pero sin éxito...

No se nada de Android aquí, pero ¿alguien sabe cuándo Apple (Safari Mobile) o Google (navegador de Android) incluirá esta nueva característica para que podamos disfrutar de la depuración remota en el desarrollo móvil?

Gracias.

Ref: http://paulirish.com/2011/a-re-introduction-to-the-chrome-developer-tools/#comment-63113

Author: abernier, 2011-07-20

8 answers

Safari en iOS 6 En iOS6 ahora puede depurar de forma remota desde Safari 6 (solo OS X). En el dispositivo, abra Configuración > Safari > Avanzado > Habilitar Inspector web. Abra Preferencias de Safari, Avanzado, marque "Mostrar menú Desarrollar en la barra de menú". Conecta tu iPhone / iPad con un cable USB. Ahora, bajo la barra de menú Desarrollar, debe obtener un submenú para su dispositivo con las pestañas que tiene abiertas en Safari en su dispositivo.

Safari en iOS 7 Además de los requisitos anteriores deberá Safari 6.1, que por el momento (Oct. 8th 2013) solo está disponible como semilla para desarrolladores: https://developer.apple.com/downloads/index.action?name=Safari%206.1

Chrome en Android 4 Es un poco más complicado en Android. Instrucciones para la depuración remota en Chrome para Android aquí: https://developers.google.com/chrome/mobile/docs/debugging No he encontrado una manera de habilitar la depuración remota en el navegador predeterminado de Android (v4.04).

 12
Author: gregers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-08 13:32:43

Echa un vistazo a este script de bash para iniciar el inspector remoto con el simulador de iOS: https://gist.github.com/2241976

 6
Author: Juan Pablo Buritica,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-29 19:07:05

Ahora es compatible con Chrome para Android.

 4
Author: Du Song,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-08 04:32:07

Actualmente ningún navegador móvil está implementando el protocolo de depuración remota de webkit. (Tal vez usted puede obtener compilaciones personalizadas para Android que lo soportan)

Sin embargo hay weinre, que le está dando una versión remota del web-inspector. Pero tienes que incluir algún código en tu página para poder soportarlo. (Porque no es una característica del navegador).

Sitio web de Weinre

Weinre github repo

 2
Author: Thomas Bartelmess,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-08 21:46:45

El hecho de que una característica esté implementada en un puerto de WebKit (en este caso, Apple y Chromium), no significa que esté siempre disponible en otro lugar. Escribí esto en detalles en mi entrada de blog sobre diferentes implementaciones de puertos WebKit .

Hasta ahora, el único puerto WebKit móvil que tiene la función de depuración remota es RIM Playbook browser.

Para iOS, es muy difícil de saber porque Apple no da ninguna información sobre su futuro producto nunca. Al menos sabemos que iOS 5 no lo tendrá ya que las versiones beta no muestran nada relacionado.

Para Android, definitivamente llegará en una versión futura, ya que la gente de Android está adoptando Chromium como la nueva base para su WebKit.

 1
Author: Ariya Hidayat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-18 13:46:30

Nathan de Vries descubrió cómo hacer esto en iOS5 ejecutándose en el simulador. Gira en torno a llamar al método private _enableRemoteInspector.

Léelo. A continuación se resume:

Para habilitar esto para Safari móvil, adjunte a él con gdb y llame al método:

MobileSafari_PID=$(ps x | grep "MobileSafari" | grep -v grep | awk '{ print $1 }')

if [ "$MobileSafari_PID" == "" ]; then
  echo "Mobile Safari.app must be running in the Simulator to enable the remote inspector."
else

  cat <<EOM | gdb -quiet > /dev/null
  attach $MobileSafari_PID
  p (void *)[WebView _enableRemoteInspector]
  detach
EOM

Fi

Luego acceda al inspector en http://localhost:9999/.

Con un UIWebView incrustado, habilítalo así:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // ...Snipped...
  [NSClassFromString(@"WebView") _enableRemoteInspector];
  // ...Snipped...
}

En un dispositivo real no funciona, probablemente porque el puerto está cortafuegos - si tener un dispositivo con jailbreak usted puede conseguir alrededor de eso (actualización nosotros si).

 1
Author: orip,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-05 17:33:10

Thomas señala un excelente recurso para la depuración remota, sin embargo, afirma que necesita agregar el código a la página web. Esto no es estrictamente cierto, ya que weinre también permite la interacción a través de bookmarklets. Parte de la página aquí (en la sección convenientemente llamada "Usando un bookmarklet"), dice que debería funcionar para Android 2.2+ e iOS.

Algunas cosas relevantes a tener en cuenta:

  1. No le permitirá depurar errores de inicio (la página ya tiene que ser cargada abrir el bookmarklet).
  2. No parece volver a conectarse si pierde la conexión (tiene que actualizar la página para obtener la conexión de nuevo).
  3. Si su js ya está roto, ya estará roto también.

También es posible (lo he hecho yo mismo) 'depurar' el código desde el navegador Android utilizando una vista web. Puede hacer que webview capture todas las llamadas al método (es decir. consola.registro). Usando eso puede capturar y guardar, o reenviar los mensajes a logcat.

Relacionados al método que ya ha probado: cuando habilitó la consola de depuración en iOS, ¿dónde estaba buscando la interacción/salida de registro? Más en particular, ¿se registró en la consola de depuración en XCODE / iPhone simulator?

 1
Author: CoatedMoose,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-09 20:32:21

La utilidad de Adobe Shadow (que acaba de publicarse) le permite depurar de forma remota utilizando weinre sin necesidad de inyectar ningún código en sus páginas web. Funciona con Chrome en Windows y Mac como el navegador "maestro" y sincronizará la navegación de cada página con cualquier número de dispositivos que ejecuten el cliente iOS o Android.

Tenga en cuenta que weinre en sí es algo limitado. Por ejemplo, no tendrá acceso a la pestaña Red.

 0
Author: istvanp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-07 10:35:16