我正在调试从Internet获取主数据的应用程序中看到的一些不一致的行为。我在模拟器中没有看到问题,只是在设备上,所以我想在模拟器中重现网络和连接环境。
在模拟器中是否有禁用网络的方法?
(我正在远程连接到Mac上编写代码,目前没有其他选择,所以不能禁用操作系统网络)。
我正在调试从Internet获取主数据的应用程序中看到的一些不一致的行为。我在模拟器中没有看到问题,只是在设备上,所以我想在模拟器中重现网络和连接环境。
在模拟器中是否有禁用网络的方法?
(我正在远程连接到Mac上编写代码,目前没有其他选择,所以不能禁用操作系统网络)。
当前回答
使用一个简单的法拉第笼来阻止或限制外部射频信号电平。
你可以用铝箔纸自己制作。如果您想要阻塞数据服务,那么开口应该小于数据服务的波长。
800兆赫有一个37厘米(14”)的波长 1900兆赫有一个16厘米(6”)的波长。
这在实际设备上比在模拟器上工作得更好,因为Mac在法拉第笼内很难工作;-)
其他回答
下载附加工具包(网络链接调节器)
描述
Sierra的例子:
您可以使用ohhttpstub和存根网络请求特定的url失败。
恐怕不行——模拟器共享操作系统正在使用的任何网络连接。不久前,我提交了一份关于模拟网络条件的雷达错误报告;你也可以考虑这么做。
是的。在Xcode中,你可以打开“打开开发人员工具→更多开发人员工具”菜单,下载“额外的Xcode工具”,其中有网络链接调节器。
使用此工具,您可以模拟不同的网络场景(例如100%丢失、3G、高延迟DNS等),还可以创建自己的自定义场景。
据我所知,在iOS模拟器上禁用网络的唯一方法是使用Little Snitch或Hands Off等工具。有了它们,您可以拒绝/阻止任何传出和传入的网络连接。
你可以设置它,让它只阻止来自模拟器应用程序的连接。它的工作原理就像防火墙一样。