如何监视从iOS模拟器进行的networking调用

我试图监视从应用程序到我的服务器的调用就像Firebug一样。 我无法find在iOS模拟器或xCode中看到的方式。

有没有办法做到这一点,而不嗅探所有的stream量? 如果不是,你会build议什么工具?

就我个人而言,我使用查尔斯那种东西。
启用后,它将监视每个networking请求,显示扩展的请求详细信息,包括支持SSL和各种请求/响应格式,如JSON等。

您也可以configuration它只嗅探到特定服务器的请求,而不是整个stream量。

这是商业软件,但有一个试用,恕我直言,它绝对是一个伟大的工具。

使用内置的networking活动监视器 。

如果您只想查看HTTP / HTTPSstream量,则可以使用其他答案所build议的中间人代理。 打嗝套房相当不错。 尽pipeconfiguration可能很痛苦。 我不确定你会如何说服模拟器与之交谈。 您可能必须将本地Mac上的代理设置为代理服务器实例,以便拦截它,因为模拟器将使用本地Mac环境。

数据包嗅探的最佳解决scheme(虽然它只适用于实际的 iOS设备,而不是模拟器)我发现是使用rvictl 。 这个博客文章有一个很好的写作。 基本上你可以这样做:

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

然后用Wireshark(或者你最喜欢的工具)嗅探它创build的界面,当你完成closures界面时:

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

这很好,因为如果你想要嗅探模拟器,那么你不得不通过stream量来访问本地Mac,但是rvictl创build了一个虚拟接口,只显示你插入你的iOS设备的stream量USB端口。

在Mac上轻松运行的免费开源代理工具是mitmproxy 。

该网站包含Mac二进制文件的链接,以及Github上的源代码。

该文档包含了一个非常有用的介绍,可以将证书加载到您的testing设备中以查看HTTPSstream量。

不像查尔斯那么贵,但是它做了我所需要的一切,而且它的自由和维护。 好东西,如果你之前使用过一些命令行工具,那就很简单了。

更新:我只是注意到在网站上,mitmproxy是可用的自制安装。 不可能更容易。

如果你有电缆连接和Mac,那么有一个简单而强大的方法:

  1. 安装免费的Wireshark,确保它可以捕获设备( 每次计算机重新启动后您都需要这样做):

    sudo chmod 644 / dev / bpf *

  2. 现在与无线networking共享您的networking。 系统首选项>共享> Internet共享。 检查您是否“从以太网共享您的连接”,并使用:Wi-Fi。 你可能也想configuration一些wifi安全性,它不会打扰你的数据监控。

  3. 将手机连接到新创build的networking。 我经常需要在这里尝试几次。 如果手机不想连接,请转Mac的wifi,然后重复上面的步骤2,耐心等待。

  4. 使用Wireshark启动Wireshark捕获无线接口,可能是“en1”。 过滤您所需的IP地址和/或端口。 当你find一个有趣的包时,select它,右键单击(上下文菜单)>按照TCPstream,你会看到很好的文字表示的请求和答案。

什么是最好的:完全相同的技巧适用于Android也!

一个很好的解决scheme,如果你习惯的铬检查工具是小马debugging器: https : //github.com/square/PonyDebugger

设置起来有点痛苦,但是一旦你做得好, 一定要使用Safari而不是Chrome来使用它。