Respostas:
Pessoalmente, eu uso Charles para esse tipo de coisa.
Quando ativado, ele monitorará todas as solicitações de rede, exibindo detalhes estendidos de solicitação, incluindo suporte para SSL e vários formatos de solicitação / resposta, como JSON, etc ...
Você também pode configurá-lo para farejar apenas solicitações para servidores específicos, não todo o tráfego.
É um software comercial, mas existe uma versão de avaliação e IMHO é definitivamente uma ótima ferramenta.
Um proxy man-in-the-middle, como sugerido por outras respostas, é uma boa solução se você deseja apenas ver o tráfego HTTP / HTTPS. Burp Suite é muito bom. Porém, pode ser difícil configurar. Não tenho certeza de como você convenceria o simulador a falar com ele. Você pode ter que definir o proxy em seu Mac local para sua instância de um servidor proxy para que ele seja interceptado, uma vez que o simulador fará uso do ambiente de seu Mac local.
A melhor solução para farejar pacotes (embora funcione apenas para dispositivos iOS reais , não o simulador) que encontrei é usar rvictl
. Esta postagem do blog tem uma boa redação. Basicamente, você faz:
rvictl -s <iphone-uid-from-xcode-organizer>
Então você fareja a interface que ele cria com o Wireshark (ou sua ferramenta favorita) e, quando terminar, desliga a interface com:
rvictl -x <iphone-uid-from-xcode-organizer>
Isso é bom porque se você quiser farejar pacotes no simulador, terá que percorrer o tráfego para o seu Mac local também, mas rvictl
cria uma interface virtual que apenas mostra o tráfego do dispositivo iOS que você conectou ao seu USB porta.
Uma ferramenta de proxy gratuita e de código aberto que roda facilmente em um Mac é o mitmproxy .
O site inclui links para um binário Mac, bem como o código-fonte no Github.
Os documentos contêm uma introdução muito útil para carregar um certificado em seu dispositivo de teste para visualizar o tráfego HTTPS.
Não é tão GUI-tastic quanto Charles, mas faz tudo que eu preciso e é gratuito e mantido. Bom material e bastante simples se você já usou algumas ferramentas de linha de comando antes.
ATUALIZAÇÃO: Acabei de notar no site que o mitmproxy está disponível como uma instalação homebrew. Não poderia ser mais fácil.
Recentemente, encontrei um repositório git que torna isso mais fácil.
Você pode experimentá-lo.
Esta é a captura de tela de um aplicativo:
Cumprimentos.
O Xcode fornece registro de diagnóstico CFNetwork. Doc da Apple
Para habilitá-lo, adicione CFNETWORK_DIAGNOSTICS=3
na seção Variável de ambiente:
Isso mostrará as solicitações do aplicativo com seus cabeçalhos e corpo. Observe que OS_ACTIVITY_MODE
deve ser definido enable
como mostrado. Caso contrário, nenhuma saída será exibida no console.
Selecione sua interface
Adicionar filter
iniciar ocapture
Clique em qualquer ação ou botão que acione uma solicitação GET / POST / PUT / DELETE
Você vai vê-lo listado no wirehark
Se você quiser saber mais detalhes sobre um pacote específico, basta selecioná-lo e Seguir> HTTP Stream .
espero que isso ajude outras pessoas !!
Se você tiver conexão a cabo e Mac, existe um método simples e poderoso:
instale o Wireshark gratuito, certifique-se de que ele pode capturar dispositivos com (e você precisa fazer isso após cada reinicialização do computador !):
sudo chmod 644 / dev / bpf *
Agora compartilhe sua rede com wi-fi. Preferências do sistema> Compartilhamento> Compartilhamento de Internet. Verifique se você tem "Compartilhar suas conexões de: Ethernet" e usando: Wi-Fi. Você também pode querer configurar alguma segurança wi-fi, não perturba o monitoramento de dados.
Conecte seu telefone à rede recém-criada. Muitas vezes preciso de várias tentativas aqui. Se o telefone não quiser se conectar, desligue o wi-fi do Mac e repita a etapa 2 acima e seja paciente.
Inicie o Wireshark para capturar sua interface wireless com o Wireshark, provavelmente é "en1". Filtre seus endereços IP e / ou portas necessários. Quando você encontrar um pacote que seja interessante, selecione-o, clique com o botão direito (menu de contexto)> Seguir TCP Stream e você verá uma bela representação de texto das solicitações e respostas.
E o que é melhor: exatamente o mesmo truque funciona para Android também!
Telerik Fiddler é uma boa escolha
http://www.telerik.com/blogs/using-fiddler-with-apple-ios-devices
Uma boa solução se você está acostumado com as ferramentas do inspetor de cromo é o depurador Pony: https://github.com/square/PonyDebugger
É um pouco complicado configurar, mas depois de fazer isso funciona bem. No entanto, certifique-se de usar o Safari em vez do Chrome para usá-lo.
Eu uso netfox. É muito fácil de usar e integrar. Você pode usá-lo no simulador e no dispositivo. Ele mostra todas as solicitações e respostas. Ele suporta JSON, XML, HTML, Imagem e outros tipos de respostas. Você pode compartilhar solicitações, respostas e log completo pelos formatos de compartilhamento padrão do IOS (Gmail, WhatsApp, e-mail, slack, sms, etc.)
Você pode verificar no GitHub: https://github.com/kasketis/netfox
Netfox fornece uma visão rápida de todas as solicitações de rede executadas por seu aplicativo iOS ou OSX. Ele pega todas as solicitações - é claro, as solicitações de bibliotecas de terceiros (como AFNetworking, Alamofire ou outra), UIWebViews e muito mais