Answers:
恐怕没有,模拟器共享操作系统正在使用的任何网络连接。不久前,我提交了一份Radar错误报告,内容涉及模拟网络条件。您可能会考虑这样做。
使用简单的法拉第笼来阻止或限制外部RF信号电平。
您可以用铝箔制作自己的。如果这是您要阻止的,则开口应小于数据服务的波长。
800 Mhz的波长为37厘米(14英寸),1900 Mhz的波长为16厘米(6英寸)。
与Mac相比,这在实际设备上比在模拟器上更有效,因为在法拉第笼中时Mac很难操作;-)
是。在Xcode中,您可以转到Xcode
菜单项-> Open Developer Tools
-> More Developer Tools
并下载“ Xcode的其他工具 ”,它将带有网络链接调节器。
使用此工具,您可以模拟不同的网络场景(例如100%丢失,3G,高延迟DNS等),还可以创建自己的自定义场景。
我知道在iOS模拟器上禁用网络的唯一方法是使用Little Snitch或Hands Off之类的工具。使用它们,您可以拒绝/阻止任何传入和传入的网络连接。您可以对其进行设置,使其仅阻止来自模拟器应用程序的连接。像防火墙一样工作。
只需将答案更新为当前日期即可。从Xcode 4(?)开始,有一个/Applications/Utilities
名为的首选项窗格Network Link Conditioner
。您可以使用现有配置文件之一,也可以创建自己的自定义配置文件,其中上/下行链接为0 Kbps,下线百分比为100%。
Network Link Conditioner
它是Apple的官方工具,与Little Snitch
或相比,它是完全免费的Hands Off
。
一个可能疯狂的想法或补丁:
只需切换网络可达性标志
这是我用来通过触发“模拟器内存警告”及其完全安全来切换标志运行时的 代码,只需确保代码仅应处于调试模式即可
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
#ifdef DEBUG
isInternetAvailable = !isInternetAvailable;
#endif
}
false
是一个好主意。没有安装,我可以继续远程工作!谢谢。
isInternetAvailable
定义?
您可以使用Little Snitch切断到任何单个进程的网络流量,包括在iOS模拟器上运行的进程。这样,您可以保持互联网连接并断开正在运行的应用程序。
使用Xcode 8.3和iOS 10.3:
XCUIDevice.shared().siriService.activate(voiceRecognitionText: "Turn off wifi")
XCUIDevice.shared().press(XCUIDeviceButton.home)
确保将其包含@available(iOS 10.3, *)
在测试套件文件的顶部。
如果愿意,您也可以选择“打开飞行模式”。
一旦Siri关闭wifi或打开“飞行模式”,您将需要关闭Siri对话,说Siri需要互联网。这可以通过按“主页”按钮来完成,该按钮可以取消对话框并返回到您的应用程序。
有两种方法可以禁用 IOS Simulator Internet:
这是最简单的方法
您可以使用OHHTTPStubs并将网络请求存根到特定的URL失败。
一个简单的解决方案是为Mac创建飞行模式。这是如何执行此操作:
当您想重新打开网络时,只需从位置下拉菜单中选择自动,然后单击应用
我建议您使用Charles Proxy在Mac上应用
它允许您使用 Bandwidth Throttle
仅为调整网络连接而创建的功能
星号/停止
油门⌘ command+ T
油门设置... ⌘ command+ T+⇧ shift
您可以改为禁用主机的网络!
如果您至少有2个wifi网络可连接,则一种非常简单的方法是使用iOS模拟器中的错误:
错误是模拟器试图使用尚未连接的网络(IP?)。
在重新启动模拟器之前-它将没有互联网(即使您连接的第一个wifi网络已建立互联网连接),因此您可以运行(cmd-R)和停止(cmd-。)项目以使用没有连接的模拟器,但是您的Mac将被连接。
然后,如果您需要运行已连接的模拟器-只需退出并启动它即可。
您可以在Mac上使用网络链接调节器。您可以从Apple开发人员网站下载它。在获得旧版本的Xcode和iOS的地方应该可以使用它。使用此网络调节器,您可以将网络强度从wifi更改为无网络。
同样,当您安装网络调节器时,它也会安装在系统偏好设置中。