xcode networking ios-simulator network-monitoring

xcode - Cómo monitorear llamadas de red hechas desde iOS Simulator



networking ios-simulator (8)

Estoy intentando monitorear las llamadas de una aplicación a mi servidor al igual que Firebug. No pude encontrar una manera de ver eso en iOS Simulator o en xCode.

¿Hay alguna manera de hacerlo sin olfatear todo el tráfico? Si no, ¿qué herramienta sugerirías?


  1. Instalar WireShark
  2. obtener la dirección IP del monitor de red xcode
  3. escucha la interfaz wifi
  4. establecer el filtro ip.addr == 192.168.1.122 en WireShark

Personalmente, uso Charles para ese tipo de cosas.
Cuando está habilitado, supervisará cada solicitud de red, mostrando los detalles de la solicitud extendida, incluido el soporte para SSL y varios formatos de solicitud / respuesta, como JSON, etc.

También puede configurarlo para olfatear solo las solicitudes a servidores específicos, no todo el tráfico.

Es un software comercial, pero hay una versión de prueba, y en mi humilde opinión es definitivamente una gran herramienta.


Si tiene conexión de cable y Mac, entonces hay un método simple y poderoso:

  1. instala Wireshark gratis, asegúrate de que puede capturar dispositivos con (¡y debes hacerlo después de que cada computadora se reinicie !):

    sudo chmod 644 / dev / bpf *

  2. Ahora comparte tu red con wifi. Preferencias del sistema> Compartir> Compartir Internet. Compruebe que tiene "Compartir sus conexiones desde: Ethernet" y utiliza: Wi-Fi. Es posible que también desee configurar un poco de seguridad wifi, no molesta su control de datos.

  3. Conecte su teléfono a su red recién creada. Necesito a menudo varios intentos aquí. Si el teléfono no quiere conectarse, apague el wifi de Mac, luego repita el paso 2 anterior y sea paciente.

  4. Comience a capturar Wireshark su interfaz inalámbrica con Wireshark, es probable que sea "en1". Filtra tus direcciones IP y / o puertos necesarios. Cuando encuentre un paquete que sea interesante, selecciónelo, haga clic con el botón derecho (menú contextual)> Seguir flujo TCP y verá una buena representación de texto de las solicitudes y respuestas.

Y qué es lo mejor: ¡exactamente el mismo truco funciona también para Android!



Un proxy man-in-the-middle, como se sugiere en otras respuestas, es una buena solución si solo quieres ver el tráfico HTTP / HTTPS. Burp Suite es bastante bueno. Sin embargo, puede ser difícil de configurar. No estoy seguro de cómo convencerías al simulador para que hable con él. Puede que tenga que configurar el proxy en su Mac local a su instancia de un servidor proxy para que pueda interceptar, ya que el simulador hará uso del entorno de su Mac local.

La mejor solución para el olfateo de paquetes (aunque solo funciona para dispositivos iOS reales , no el simulador) He encontrado que es usar rvictl . Esta publicación de blog tiene una buena reseña. Básicamente lo haces:

rvictl -s <iphone-uid-from-xcode-organizer>

Luego hueles la interfaz que crea con Wireshark (o tu herramienta favorita), y cuando termines, apaga la interfaz con:

rvictl -x <iphone-uid-from-xcode-organizer>

Esto es bueno, porque si quiere empaquetar el simulador de paquetes, también debe navegar por el tráfico hacia su Mac local, pero rvictl crea una interfaz virtual que solo le muestra el tráfico desde el dispositivo iOS que ha conectado a su Puerto USB.


Una buena solución si está acostumbrado a las herramientas del inspector de Chrome es el depurador Pony: https://github.com/square/PonyDebugger

Es un poco difícil de configurar, pero una vez que lo haces funciona bien. Sin embargo, asegúrese de usar Safari en lugar de Chrome para usarlo.


Una herramienta de proxy de fuente abierta y gratuita que se ejecuta fácilmente en una Mac es mitmproxy .

El sitio web incluye enlaces a un Mac binario, así como el código fuente en Github.

Los documentos contienen una introducción muy útil para cargar un certificado en su dispositivo de prueba para ver el tráfico HTTPS.

No es tan intuitivo como Charles, pero hace todo lo que necesito y es gratis y mantenido. Buenas cosas, y bastante sencillo si has usado algunas herramientas de línea de comando antes.

ACTUALIZACIÓN: Acabo de notar en el sitio web que mitmproxy está disponible como una instalación homebrew. No podría ser más fácil.