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

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

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


当前回答

您可以使用ohhttpstub和存根网络请求特定的url失败。

其他回答

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

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

恐怕不行——模拟器共享操作系统正在使用的任何网络连接。不久前,我提交了一份关于模拟网络条件的雷达错误报告;你也可以考虑这么做。

一个简单的解决方案是为你的Mac创建一个飞行模式。 以下是如何做到这一点:

go into Network in System Preferences click on Location dropdown menu click on plus icon to add a new location name the new location 'Airplane Mode' or similar, and click 'Done' select the location you just created from the Location dropdown menu click on each available network interface in the list at the left of the window in turn, disabling each one click on the Configure iPv4 menu, and choose Off for Wi-Fi, just click on the Turn Wi-Fi Off button click Apply, and this location will block all network activity

当您想重新启动网络时,只需从“位置”下拉菜单中选择“自动”,然后单击“应用”

此解决方案的信誉:http://hints.macworld.com/article.php?story=20130325002258846

下载附加工具包(网络链接调节器)

描述

Sierra的例子:

iOS禁用网络

我建议你使用Mac上的Charles Proxy应用。

它允许您使用仅为调整网络连接而创建的带宽节流功能。

启动/停止节流⌘命令+ T 节流设置…⌘命令+ T + shift

*如果您通过添加带宽为0和0的预设来创建自己的预设用于下载和上传,您可以模拟没有互联网连接。此外,只对某些特定的主机启用它是非常有用的。

作为一种替代方法,你可以禁用Mac上的连接,因为所有来自模拟器的流量都要经过你的计算机。