132 votes

Comment surveiller les appels réseau passés depuis le simulateur iOS

J'essaie de surveiller les appels d'une application sur mon serveur, comme le fait Firebug. Je ne pouvais pas trouver un moyen de voir cela dans iOS Simulator ou xCode.

Y a-t-il un moyen de le faire sans renifler tout le trafic? Si non, quel outil suggéreriez-vous?

Merci beaucoup pour l'aide,

94voto

Macmade Points 27414

Personnellement, j'utilise Charles pour ce genre de choses.
Une fois activé, il surveillera chaque requête réseau, en affichant les détails de la requête étendue, y compris la prise en charge de SSL et divers formats de requête / réponse, tels que JSON, etc.

Vous pouvez également le configurer pour qu'il ne détecte que les demandes adressées à des serveurs spécifiques, pas le trafic en entier.

C'est un logiciel commercial, mais il y a un essai, et IMHO, c'est vraiment un excellent outil.

26voto

Andy Points 2729

26voto

Mike Points 6080

Un man-in-the-middle proxy, comme suggéré par d'autres réponses, est une bonne solution si vous ne voulez voir que trafic HTTP/HTTPS. Burp Suite est assez bonne. Il peut être une douleur à configurer. Je ne suis pas sûr de la façon de convaincre le simulateur de parler. Vous pourriez avoir à définir le proxy sur votre Mac à votre instance de serveur proxy pour les intercepter, depuis le simulateur va rendre l'utilisation de votre Mac de l'environnement.

La meilleure solution pour le reniflage de paquets (bien qu'il ne fonctionne que pour les réels appareils iOS, pas le simulateur) que j'ai trouvé est d'utiliser rvictl. Ce blog a une belle writeup. Fondamentalement, vous faites:

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

Ensuite, vous renifler l'interface, il crée avec Wireshark (ou votre outil préféré), et lorsque vous avez terminé, arrêtez l'interface avec:

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

C'est bien parce que si vous voulez packet sniffer le simulateur, vous êtes de devoir parcourir le trafic vers votre Mac, mais rvictl crée une interface virtuelle qui vous montre à la circulation à partir de l'appareil iOS que vous avez connecté à votre port USB.

20voto

giff Points 1165

Un libre et open source outil de proxy qui fonctionne facilement sur un Mac est mitmproxy.

Le site web inclut des liens vers un binaire Mac, ainsi que le code source sur Github.

Les documents contiennent une très utile introduction à chargement d'un cert dans votre appareil de test pour afficher le trafic HTTPS.

Pas tout à fait comme GUI-tastic comme Charles, mais il fait tout ce dont j'ai besoin et sa libre et maintenu. Bon, et assez simple si vous avez utilisé des outils de ligne de commande avant.

3voto

JaakL Points 1715

Si vous avez le câble de connexion et Mac, il est simple et puissante méthode:

  1. installez gratuitement Wireshark, assurez-vous qu'il peut périphériques de capture (et vous avez besoin de le faire après chaque redémarrage de l'ordinateur!):

    sudo chmod 644 /dev/bpf*

  2. Maintenant partagez votre réseau wifi. Préférences système > Partage > Partage Internet. Vérifiez que vous avez de "Partage des connexions à partir de: Ethernet" et à l'aide de: la connexion Wi-Fi gratuite. Vous pouvez également configurer certaines de sécurité wifi, ça ne dérange pas vos données de surveillance.

  3. Connectez votre téléphone à votre réseau nouvellement créé. J'ai besoin assez souvent plusieurs tentatives ici. Si le téléphone ne voulez pas vous connecter, tour de wifi du Mac, puis répétez l'étape 2 ci-dessus, et d'être patient.

  4. Démarrer la capture Wireshark votre interface sans fil avec Wireshark, c'est probablement "en1". Filtre de votre besoin d'adresses IP et de ports. Lorsque vous trouvez un paquet qui est intéressant, sélectionner, clic Droit (menu contextuel) > Suivez les Flux TCP et vous verrez de jolies représentation textuelle des demandes et des réponses.

Et quel est le meilleur: exactement le même truc qui fonctionne pour Android aussi!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X