Risposte:
Personalmente, uso Charles per quel genere di cose.
Se abilitato, monitorerà ogni richiesta di rete, visualizzando i dettagli della richiesta estesa, incluso il supporto per SSL e vari formati di richiesta / risposta, come JSON, ecc ...
È inoltre possibile configurarlo per rilevare solo le richieste a server specifici, non l'intero traffico.
È un software commerciale, ma c'è una prova e IMHO è decisamente un ottimo strumento.
Un proxy man-in-the-middle, come suggerito da altre risposte, è una buona soluzione se vuoi vedere solo il traffico HTTP / HTTPS. Burp Suite è abbastanza buono. Potrebbe essere difficile da configurare. Non sono sicuro di come convinceresti il simulatore a parlargli. Potrebbe essere necessario impostare il proxy sul tuo Mac locale sulla tua istanza di un server proxy in modo che possa intercettare, poiché il simulatore utilizzerà l'ambiente del tuo Mac locale.
La migliore soluzione per lo sniffing dei pacchetti (sebbene funzioni solo per i dispositivi iOS effettivi , non per il simulatore) che ho trovato è quella di utilizzare rvictl
. Questo post del blog ha una bella recensione. Fondamentalmente fai:
rvictl -s <iphone-uid-from-xcode-organizer>
Quindi annusi l'interfaccia che crea con Wireshark (o il tuo strumento preferito) e quando hai finito chiudi l'interfaccia con:
rvictl -x <iphone-uid-from-xcode-organizer>
Questo è bello perché se vuoi analizzare i pacchetti del simulatore, devi guadare il traffico anche sul tuo Mac locale, ma rvictl
crea un'interfaccia virtuale che ti mostra solo il traffico dal dispositivo iOS che hai collegato alla tua USB porta.
Uno strumento proxy gratuito e open source che funziona facilmente su un Mac è mitmproxy .
Il sito Web include collegamenti a un file binario Mac, nonché il codice sorgente su Github.
I documenti contengono un'introduzione molto utile al caricamento di un certificato nel dispositivo di prova per visualizzare il traffico HTTPS.
Non abbastanza GUI-tastic come Charles, ma fa tutto ciò di cui ho bisogno ed è gratuito e mantenuto. Roba buona e piuttosto semplice se hai già utilizzato alcuni strumenti a riga di comando.
AGGIORNAMENTO: Ho appena notato sul sito Web che mitmproxy è disponibile come installazione homebrew. Non potrebbe essere più facile.
Recentemente ho trovato un repository git che lo rende facile.
Puoi provarlo.
Questo è lo screenshot di un'app:
I migliori saluti.
Xcode fornisce la registrazione diagnostica CFNetwork. Doc di Apple
Per abilitarlo, aggiungi CFNETWORK_DIAGNOSTICS=3
nella sezione Variabile d'ambiente:
Questo mostrerà le richieste dall'app con le sue intestazioni e il corpo. Notare che OS_ACTIVITY_MODE
deve essere impostato enable
come mostrato. In caso contrario, nessun output verrà visualizzato sulla console.
Seleziona la tua interfaccia
Aggiungi filter
avvia il filecapture
Fare clic su qualsiasi azione o pulsante che attiverà una richiesta GET / POST / PUT / DELETE
Lo vedrai elencato in WireShark
Se vuoi conoscere maggiori dettagli su un pacchetto specifico, selezionalo e Segui> HTTP Stream .
spero che questo aiuti gli altri !!
Se hai una connessione via cavo e un Mac, esiste un metodo semplice e potente:
installa Wireshark gratuito, assicurati che possa catturare dispositivi con (e devi farlo dopo ogni riavvio del computer !):
sudo chmod 644 / dev / bpf *
Ora condividi la tua rete con Wi-Fi. Preferenze di sistema> Condivisione> Condivisione Internet. Verificare di disporre di "Condividi le connessioni da: Ethernet" e di utilizzare: Wi-Fi. Potresti voler configurare anche un po 'di sicurezza wifi, non disturba il monitoraggio dei dati.
Collega il telefono alla rete appena creata. Ho bisogno abbastanza spesso di diversi tentativi qui. Se il telefono non vuole connettersi, disattivare il wifi del Mac, quindi ripetere il passaggio 2 sopra e sii paziente.
Avvia Wireshark e acquisisci la tua interfaccia wireless con Wireshark, probabilmente è "en1". Filtra gli indirizzi IP e / o le porte necessari. Quando trovi un pacchetto interessante, selezionalo, fai clic con il pulsante destro del mouse (menu contestuale)> Segui flusso TCP e vedrai una bella rappresentazione testuale delle richieste e delle risposte.
E qual è il migliore: esattamente lo stesso trucco funziona anche per Android!
Telerik Fiddler è una buona scelta
http://www.telerik.com/blogs/using-fiddler-with-apple-ios-devices
Una buona soluzione se sei abituato agli strumenti di Chrome Inspector è il debugger di Pony: https://github.com/square/PonyDebugger
È un po 'una seccatura da configurare, ma una volta che lo fai funziona bene. Assicurati di utilizzare Safari invece di Chrome per usarlo.
Uso netfox. È molto facile da usare e integrare. Puoi usarlo su simulatore e dispositivo. Mostra tutte le richieste e le risposte. Supporta JSON, XML, HTML, immagine e altri tipi di risposte. Puoi condividere richieste, risposte e log completo tramite i formati di condivisione predefiniti di IOS (Gmail, WhatsApp, e-mail, Slack, sms, ecc.)
Puoi controllare su GitHub: https://github.com/kasketis/netfox
Netfox fornisce una rapida occhiata a tutte le richieste di rete eseguite eseguite dalla tua app iOS o OSX. Afferra tutte le richieste, ovviamente le tue, le richieste da librerie di terze parti (come AFNetworking, Alamofire o altro), UIWebViews e altro