我正在调试从Internet获取主数据的应用程序中看到的一些不一致的行为。我在模拟器中没有看到问题,只是在设备上,所以我想在模拟器中重现网络和连接环境。
在模拟器中是否有禁用网络的方法?
(我正在远程连接到Mac上编写代码,目前没有其他选择,所以不能禁用操作系统网络)。
我正在调试从Internet获取主数据的应用程序中看到的一些不一致的行为。我在模拟器中没有看到问题,只是在设备上,所以我想在模拟器中重现网络和连接环境。
在模拟器中是否有禁用网络的方法?
(我正在远程连接到Mac上编写代码,目前没有其他选择,所以不能禁用操作系统网络)。
当前回答
一个可能是疯狂的想法或补丁:
只需切换网络可达性标志
这是我用来在运行时通过触发“模拟器内存警告”切换我的标志的代码,它是完全安全的。只要确保代码应该只处于调试模式
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
#ifdef DEBUG
isInternetAvailable = !isInternetAvailable;
#endif
}
其他回答
你可以使用第三方应用程序(如Charles)限制互联网连接。
在Mac上点击Command + Shift + T设置节流。
自Xcode 4(?)以来,在/Applications/Utilities中有一个名为Network Link Conditioner的首选项窗格。您可以使用现有的配置文件之一,也可以创建自己的自定义配置文件,使用0 kbit/s的up/downlink和100%的drop。
你可以使用小飞贼切断任何单独进程的网络流量,包括在iOS模拟器上运行的进程。这样你就可以保持网络连接,并断开正在运行的应用程序。
使用一个简单的法拉第笼来阻止或限制外部射频信号电平。
你可以用铝箔纸自己制作。如果您想要阻塞数据服务,那么开口应该小于数据服务的波长。
800兆赫有一个37厘米(14”)的波长 1900兆赫有一个16厘米(6”)的波长。
这在实际设备上比在模拟器上工作得更好,因为Mac在法拉第笼内很难工作;-)
您可以禁用主机的网络代替!