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

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

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


当前回答

您可以禁用主机的网络代替!

其他回答

你可以使用第三方应用程序(如Charles)限制互联网连接。

在Mac上点击Command + Shift + T设置节流。

只要在Mac OS x上关掉你的Wi-Fi就行了。

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

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

如果你有至少两个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将被连接。

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

如果你的应用程序连接到一个特定的域,你可以简单地将它添加到你的/etc/hosts文件中,并将它路由到本地网络中不存在的IP地址……对于应用程序来说,就像没有任何Internet连接或服务器不可达一样。

sudo nano /etc/hosts

增加如下一行:

192.168.1.123   example.com

如果您在本地机器上没有运行web服务器,则使用127.0.0.1。