我正在调试从Internet获取主数据的应用程序中看到的一些不一致的行为。我在模拟器中没有看到问题,只是在设备上,所以我想在模拟器中重现网络和连接环境。
在模拟器中是否有禁用网络的方法?
(我正在远程连接到Mac上编写代码,目前没有其他选择,所以不能禁用操作系统网络)。
我正在调试从Internet获取主数据的应用程序中看到的一些不一致的行为。我在模拟器中没有看到问题,只是在设备上,所以我想在模拟器中重现网络和连接环境。
在模拟器中是否有禁用网络的方法?
(我正在远程连接到Mac上编写代码,目前没有其他选择,所以不能禁用操作系统网络)。
当前回答
有两种方法禁用iOS模拟器的互联网连接:
拔掉网络连接 关闭Wi-Fi
这是最简单的方法。
其他回答
您可以使用ohhttpstub和存根网络请求特定的url失败。
在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键来完成的,这将取消对话并返回到应用程序。
您可以禁用主机的网络代替!
iOS禁用网络
我建议你使用Mac上的Charles Proxy应用。
它允许您使用仅为调整网络连接而创建的带宽节流功能。
启动/停止节流⌘命令+ T 节流设置…⌘命令+ T + shift
*如果您通过添加带宽为0和0的预设来创建自己的预设用于下载和上传,您可以模拟没有互联网连接。此外,只对某些特定的主机启用它是非常有用的。
作为一种替代方法,你可以禁用Mac上的连接,因为所有来自模拟器的流量都要经过你的计算机。
有两种方法禁用iOS模拟器的互联网连接:
拔掉网络连接 关闭Wi-Fi
这是最简单的方法。