Réponses:
Personnellement, j'utilise Charles pour ce genre de choses.
Lorsqu'il est activé, il surveillera chaque demande réseau, affichant les détails de la demande étendue, y compris la prise en charge de SSL et divers formats de demande / réponse, comme JSON, etc.
Vous pouvez également le configurer pour ne renifler que les demandes adressées à des serveurs spécifiques, et non à l'ensemble du trafic.
C'est un logiciel commercial, mais il y a un essai, et à mon humble avis, c'est définitivement un excellent outil.
Un proxy man-in-the-middle, comme suggéré par d'autres réponses, est une bonne solution si vous ne voulez voir que le trafic HTTP / HTTPS. Suite Burp est plutôt bien. Cela peut être difficile à configurer cependant. Je ne sais pas comment vous pourriez convaincre le simulateur de lui parler. Vous devrez peut-être définir le proxy de votre Mac local sur votre instance de serveur proxy pour qu'il intercepte, car le simulateur utilisera l'environnement de votre Mac local.
La meilleure solution pour le reniflement de paquets (bien que cela ne fonctionne que pour les appareils iOS réels , pas le simulateur) que j'ai trouvée est d'utiliser rvictl
. Ce billet de blog a une belle rédaction. En gros, vous faites:
rvictl -s <iphone-uid-from-xcode-organizer>
Ensuite, vous reniflez l'interface avec laquelle il crée avec Wireshark (ou votre outil préféré), et lorsque vous avez terminé, fermez l'interface avec:
rvictl -x <iphone-uid-from-xcode-organizer>
C'est bien parce que si vous voulez renifler les paquets avec le simulateur, vous devez également parcourir le trafic vers votre Mac local, mais rvictl
crée une interface virtuelle qui vous montre simplement le trafic de l'appareil iOS que vous avez branché sur votre clé USB. Port.
Un outil proxy gratuit et open source qui s'exécute facilement sur un Mac est mitmproxy .
Le site Web comprend des liens vers un binaire Mac, ainsi que le code source sur Github.
La documentation contient une introduction très utile au chargement d'un certificat dans votre appareil de test pour afficher le trafic HTTPS.
Pas tout à fait aussi graphique que Charles, mais il fait tout ce dont j'ai besoin et est gratuit et maintenu. Bon truc, et assez simple si vous avez déjà utilisé des outils de ligne de commande.
MISE À JOUR: Je viens de remarquer sur le site Web que mitmproxy est disponible en tant qu'installation homebrew. Ça ne pourrait pas être plus facile.
Récemment, j'ai trouvé un dépôt git qui facilite les choses.
Tu peux l'essayer.
Voici la capture d'écran d'une application:
Meilleures salutations.
Xcode fournit la journalisation des diagnostics CFNetwork. Doc Apple
Pour l'activer, ajoutez CFNETWORK_DIAGNOSTICS=3
dans la section Variable d'environnement:
Cela affichera les demandes de l'application avec ses en-têtes et son corps. Notez qu'il OS_ACTIVITY_MODE
doit être défini enable
comme indiqué. Sinon, aucune sortie ne sera affichée sur la console.
Sélectionnez votre interface
Ajouter filter
démarrer lecapture
Cliquez sur n'importe quelle action ou bouton qui déclencherait une requête GET / POST / PUT / DELETE
Vous le verrez sur la liste dans le wirehark
Si vous voulez en savoir plus sur un paquet spécifique, sélectionnez-le et suivez> Flux HTTP .
j'espère que cela aidera les autres !!
Si vous avez une connexion par câble et Mac, il existe une méthode simple et puissante:
installez Wireshark gratuit, assurez-vous qu'il peut capturer des périphériques avec (et vous devez le faire après chaque redémarrage de l'ordinateur !):
sudo chmod 644 / dev / bpf *
Partagez maintenant votre réseau avec le wifi. Préférences système> Partage> Partage Internet. Vérifiez que vous avez "Partager vos connexions depuis: Ethernet" et que vous utilisez: Wi-Fi. Vous voudrez peut-être également configurer une sécurité wifi, cela ne perturbe pas la surveillance de vos données.
Connectez votre téléphone à votre réseau nouvellement créé. J'ai besoin assez souvent de plusieurs tentatives ici. Si le téléphone ne veut pas se connecter, éteignez le wifi du Mac, puis répétez l'étape 2 ci-dessus et soyez patient.
Démarrez Wireshark capturer votre interface sans fil avec Wireshark, c'est probablement "en1". Filtrez les adresses IP et / ou les ports dont vous avez besoin. Lorsque vous trouvez un package qui est intéressant, sélectionnez-le, faites un clic droit (menu contextuel)> Suivre le flux TCP et vous voyez une belle représentation textuelle des requêtes et des réponses.
Et quel est le meilleur: exactement la même astuce fonctionne aussi pour Android!
Telerik Fiddler est un bon choix
http://www.telerik.com/blogs/using-fiddler-with-apple-ios-devices
Une bonne solution si vous êtes habitué aux outils d'inspecteur de chrome est le débogueur Pony: https://github.com/square/PonyDebugger
C'est un peu difficile à configurer, mais une fois que vous le faites, cela fonctionne bien. Assurez-vous d'utiliser Safari au lieu de Chrome pour l'utiliser.
J'utilise netfox. Il est très facile à utiliser et à intégrer. Vous pouvez l'utiliser sur le simulateur et l'appareil. Il montre toutes les demandes et réponses. Il prend en charge les types de réponses JSON, XML, HTML, Image et autres. Vous pouvez partager des demandes, des réponses et un journal complet par les formats de partage par défaut d'IOS (Gmail, WhatsApp, e-mail, slack, sms, etc.)
Vous pouvez vérifier sur GitHub: https://github.com/kasketis/netfox
Netfox fournit un aperçu rapide de toutes les requêtes réseau exécutées par votre application iOS ou OSX. Il saisit toutes les demandes - bien sûr les vôtres, les demandes de bibliothèques tierces (telles que AFNetworking, Alamofire ou autre), UIWebViews, etc.