Respuestas:
Personalmente, uso a Charles para ese tipo de cosas.
Cuando está habilitado, monitoreará cada solicitud de red, mostrando detalles de solicitud extendidos, incluido el soporte para SSL y varios formatos de solicitud / respuesta, como JSON, etc.
También puede configurarlo para rastrear solo 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.
Un proxy de intermediario, como lo sugieren otras respuestas, es una buena solución si solo desea ver el tráfico HTTP / HTTPS. Burp Suite es bastante bueno. Sin embargo, puede ser complicado configurarlo. No estoy seguro de cómo convencerías al simulador de que hablara con él. Es posible que deba configurar el proxy en su Mac local para 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 la detección de paquetes (aunque solo funciona para dispositivos iOS reales , no para el simulador) que he encontrado 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, huele la interfaz que crea con Wireshark (o su herramienta favorita), y cuando haya terminado, apague la interfaz con:
rvictl -x <iphone-uid-from-xcode-organizer>
Esto es bueno porque si desea rastrear paquetes del simulador, también tendrá que atravesar el tráfico hacia su Mac local, pero rvictl
crea una interfaz virtual que solo le muestra el tráfico del dispositivo iOS que ha conectado a su USB Puerto.
Una herramienta de proxy gratuita y de código abierto que se ejecuta fácilmente en una Mac es mitmproxy .
El sitio web incluye enlaces a un binario de Mac, 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 GUI-tastic como Charles, pero hace todo lo que necesito y es gratis y mantenido. Cosas buenas y bastante sencillas si ya ha usado algunas herramientas de línea de comandos.
ACTUALIZACIÓN: Acabo de notar en el sitio web que mitmproxy está disponible como instalación casera. No podría ser más fácil.
Recientemente encontré un repositorio de git que lo hace fácil.
Puedes probarlo.
Esta es la captura de pantalla de una aplicación:
Atentamente.
Xcode proporciona registro de diagnóstico CFNetwork. Documento de Apple
Para habilitarlo, agregue CFNETWORK_DIAGNOSTICS=3
en la sección Variable de entorno:
Esto mostrará las solicitudes de la aplicación con sus encabezados y cuerpo. Tenga en cuenta que OS_ACTIVITY_MODE
debe configurarse enable
como se muestra. De lo contrario, no se mostrará ningún resultado en la consola.
Seleccione su interfaz
Agregar filter
iniciar elcapture
Haga clic en cualquier acción o botón que active una solicitud GET / POST / PUT / DELETE
Lo verá en la lista de Wireshark
Si desea conocer más detalles sobre un paquete específico, simplemente selecciónelo y siga> HTTP Stream .
espero que esto ayude a otros !!
Si tiene conexión por cable y Mac, existe un método simple y poderoso:
instale Wireshark gratis, asegúrese de que pueda capturar dispositivos con (¡y debe hacer esto después de cada reinicio de la computadora !):
sudo chmod 644 / dev / bpf *
Ahora comparte tu red con wifi. Preferencias del sistema> Compartir> Compartir Internet. Comprueba que tienes "Compartir tus conexiones desde: Ethernet" y que estás usando: Wi-Fi. Es posible que también desee configurar algo de seguridad wifi, ya que no interfiere con el monitoreo de sus datos.
Conecte su teléfono a su red recién creada. A menudo necesito varios intentos aquí. Si el teléfono no quiere conectarse, apague el wifi de Mac, luego repita el paso 2 anterior y sea paciente.
Inicie Wireshark y capture su interfaz inalámbrica con Wireshark, probablemente sea "en1". Filtre sus 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 TCP Stream y verá una bonita representación de texto de las solicitudes y respuestas.
Y lo que es mejor: ¡exactamente el mismo truco funciona también para Android!
Telerik Fiddler es una buena opción
http://www.telerik.com/blogs/using-fiddler-with-apple-ios-devices
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 complicado de configurar, pero una vez que lo haces, funciona bien. Sin embargo, asegúrese de usar Safari en lugar de Chrome para usarlo.
Yo uso netfox. Es muy fácil de usar e integrar. Puede usarlo en simulador y dispositivo. Muestra todas las solicitudes y respuestas. Es compatible con JSON, XML, HTML, imágenes y otros tipos de respuestas. Puede compartir solicitudes, respuestas y el registro completo mediante los formatos de uso compartido predeterminados de IOS (Gmail, WhatsApp, correo electrónico, slack, sms, etc.)
Puede consultar en GitHub: https://github.com/kasketis/netfox
Netfox proporciona un vistazo rápido a todas las solicitudes de red ejecutadas realizadas por su aplicación iOS u OSX. Agarra todas las solicitudes, por supuesto las suyas, solicitudes de bibliotecas de terceros (como AFNetworking, Alamofire u otras), UIWebViews y más.