我正在调试从Internet获取主数据的应用程序中看到的一些不一致的行为。我在模拟器中没有看到问题,只是在设备上,所以我想在模拟器中重现网络和连接环境。

在模拟器中是否有禁用网络的方法?

(我正在远程连接到Mac上编写代码,目前没有其他选择,所以不能禁用操作系统网络)。


当前回答

是的。在Xcode中,你可以打开“打开开发人员工具→更多开发人员工具”菜单,下载“额外的Xcode工具”,其中有网络链接调节器。

使用此工具,您可以模拟不同的网络场景(例如100%丢失、3G、高延迟DNS等),还可以创建自己的自定义场景。

其他回答

有两种方法禁用iOS模拟器的互联网连接:

拔掉网络连接 关闭Wi-Fi

这是最简单的方法。

只要在Mac OS x上关掉你的Wi-Fi就行了。

自Xcode 4(?)以来,在/Applications/Utilities中有一个名为Network Link Conditioner的首选项窗格。您可以使用现有的配置文件之一,也可以创建自己的自定义配置文件,使用0 kbit/s的up/downlink和100%的drop。

如果你需要破坏你的网络连接是不同的方式,看看这些utils:

ipfw或pfctl (FreeBSD/OSX) -低级包过滤。拒绝从本地主机访问端口的示例 要关闭网络,可以在终端执行:

pfctl -e
(echo "block all"; pfctl -sr) | pfctl -f -

停止过滤:

pfctl -d

曾经有通过共享无线网络模拟3G网络的Throttle (Mac)。

您可以禁用主机的网络代替!