我正在调试从Internet获取主数据的应用程序中看到的一些不一致的行为。我在模拟器中没有看到问题,只是在设备上,所以我想在模拟器中重现网络和连接环境。
在模拟器中是否有禁用网络的方法?
(我正在远程连接到Mac上编写代码,目前没有其他选择,所以不能禁用操作系统网络)。
我正在调试从Internet获取主数据的应用程序中看到的一些不一致的行为。我在模拟器中没有看到问题,只是在设备上,所以我想在模拟器中重现网络和连接环境。
在模拟器中是否有禁用网络的方法?
(我正在远程连接到Mac上编写代码,目前没有其他选择,所以不能禁用操作系统网络)。
当前回答
你可以使用小飞贼切断任何单独进程的网络流量,包括在iOS模拟器上运行的进程。这样你就可以保持网络连接,并断开正在运行的应用程序。
其他回答
恐怕不行——模拟器共享操作系统正在使用的任何网络连接。不久前,我提交了一份关于模拟网络条件的雷达错误报告;你也可以考虑这么做。
使用一个简单的法拉第笼来阻止或限制外部射频信号电平。
你可以用铝箔纸自己制作。如果您想要阻塞数据服务,那么开口应该小于数据服务的波长。
800兆赫有一个37厘米(14”)的波长 1900兆赫有一个16厘米(6”)的波长。
这在实际设备上比在模拟器上工作得更好,因为Mac在法拉第笼内很难工作;-)
据我所知,在iOS模拟器上禁用网络的唯一方法是使用Little Snitch或Hands Off等工具。有了它们,您可以拒绝/阻止任何传出和传入的网络连接。
你可以设置它,让它只阻止来自模拟器应用程序的连接。它的工作原理就像防火墙一样。
您可以禁用主机的网络代替!
如果你需要破坏你的网络连接是不同的方式,看看这些utils:
ipfw或pfctl (FreeBSD/OSX) -低级包过滤。拒绝从本地主机访问端口的示例 要关闭网络,可以在终端执行:
pfctl -e
(echo "block all"; pfctl -sr) | pfctl -f -
停止过滤:
pfctl -d
曾经有通过共享无线网络模拟3G网络的Throttle (Mac)。