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

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

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


当前回答

据我所知,在iOS模拟器上禁用网络的唯一方法是使用Little Snitch或Hands Off等工具。有了它们,您可以拒绝/阻止任何传出和传入的网络连接。

你可以设置它,让它只阻止来自模拟器应用程序的连接。它的工作原理就像防火墙一样。

其他回答

据我所知,在iOS模拟器上禁用网络的唯一方法是使用Little Snitch或Hands Off等工具。有了它们,您可以拒绝/阻止任何传出和传入的网络连接。

你可以设置它,让它只阻止来自模拟器应用程序的连接。它的工作原理就像防火墙一样。

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

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

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

停止过滤:

pfctl -d

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

iOS禁用网络

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

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

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

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

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

使用一个简单的法拉第笼来阻止或限制外部射频信号电平。

你可以用铝箔纸自己制作。如果您想要阻塞数据服务,那么开口应该小于数据服务的波长。

800兆赫有一个37厘米(14”)的波长 1900兆赫有一个16厘米(6”)的波长。

这在实际设备上比在模拟器上工作得更好,因为Mac在法拉第笼内很难工作;-)

一个简单的解决方案是为你的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