我正在调试从Internet获取主数据的应用程序中看到的一些不一致的行为。我在模拟器中没有看到问题,只是在设备上,所以我想在模拟器中重现网络和连接环境。
在模拟器中是否有禁用网络的方法?
(我正在远程连接到Mac上编写代码,目前没有其他选择,所以不能禁用操作系统网络)。
我正在调试从Internet获取主数据的应用程序中看到的一些不一致的行为。我在模拟器中没有看到问题,只是在设备上,所以我想在模拟器中重现网络和连接环境。
在模拟器中是否有禁用网络的方法?
(我正在远程连接到Mac上编写代码,目前没有其他选择,所以不能禁用操作系统网络)。
当前回答
您可以禁用主机的网络代替!
其他回答
据我所知,在iOS模拟器上禁用网络的唯一方法是使用Little Snitch或Hands Off等工具。有了它们,您可以拒绝/阻止任何传出和传入的网络连接。
你可以设置它,让它只阻止来自模拟器应用程序的连接。它的工作原理就像防火墙一样。
您可以禁用主机的网络代替!
一个简单的解决方案是为你的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
在Xcode 8.3和iOS 10.3中:
XCUIDevice.shared().siriService.activate(voiceRecognitionText: "Turn off Wi-Fi")
XCUIDevice.shared().press(XCUIDeviceButton.home)
确保在测试套件文件的顶部包含@available(iOS 10.3, *)。
如果你喜欢,你也可以选择“打开飞行模式”。
一旦Siri关闭Wi-Fi或开启飞行模式,你就需要关闭Siri需要上网的对话框。这是通过按home键来完成的,这将取消对话并返回到应用程序。
如果你有至少两个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将被连接。
然后,如果你需要运行模拟器连接-退出并启动它。