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

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

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


当前回答

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

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

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

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

其他回答

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

拔掉网络连接 关闭Wi-Fi

这是最简单的方法。

iOS禁用网络

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

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

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

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

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

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

如果你有至少两个Wi-Fi网络连接,一个非常简单的方法是使用iOS模拟器中的一个bug:

退出模拟器(Cmd + Q)如果它是打开的 将Mac连接到一个Wi-Fi接入点(可能没有连接到互联网,但没关系) 启动模拟器(菜单:Xcode→Open Developer Tool→iOS simulator),等待加载 切换Wi-Fi网络到另一个 利润

这个错误是模拟器试图使用一个尚未连接的网络(IP?)。

直到您重新启动模拟器-它将没有互联网连接(即使您连接的第一个Wi-Fi网络有互联网连接),所以您可以运行(Cmd + R)和停止(Cmd + .)项目(s)在没有连接的情况下使用模拟器,但您的Mac将被连接。

然后,如果你需要运行模拟器连接-退出并启动它。

你可以在你的Mac上使用网络链接调节器。你可以从苹果开发者网站下载它。它应该可以在旧版本的Xcode和iOS中使用。有了这个网络调节器,你可以改变网络的强度,从Wi-Fi到无网络。

此外,当您安装网络调节器时,它会安装在系统首选项中。