在iPhone模拟器中模拟飞行模式


Answers:


114

在Mac上关闭网络连接。


14
很明显,我踢了自己。但同时,他们肯定可以提供更好的解决方案!
benlumley

37
尽管我们的团队已经要求苹果提供类似的功能,但是这听起来很难。问题在于,模拟器中运行的应用程序实际上是Mac应用程序。iPhone Simulator不能模拟iPhone。这只是Mac应用程序可以链接并看起来像iPhone的环境。因此,您需要一种在系统层限制应用程序与网络对话的方法。Unix不提供这种功能。它几乎肯定需要内核支持才能获得它。您可以为NSURLConnection及其亲属更轻松地执行此操作,但是如果某些调用有效而有些则无效,则可能会更加令人困惑。
罗布·纳皮尔

13
这不会模拟飞行模式...因为GPS模拟器仍可运行,但不会返回值。
Jann 2010年

18
在某些情况下,仅关闭网络连接不是很有用。例如,当您测试可达性和互联网可用性时-有时您确实确实需要飞机模式。没有有效的网络连接的模拟器实际上并不相同。此外,某些工作场所的计算机存在真正的身份验证问题,这意味着终止网络连接并非总是一种选择(因为万事俱备)。
occulus

9
我同意。在办公室工作时,关闭整个机器的网络会严重损害工作环境中的通信。在许多情况下,这不是可接受的解决方案。
克雷科(Krejko)2013年

59

您可以安装苹果的网络链接调节器

在优胜美地:

可以在“用于Xcode的硬件IO工具”包中找到Network Link Conditioner。可以从Apple Developer下载页面下载。下载完成后,打开DMG并双击“ Network Link Condition.prefPane”进行安装()。

使用此首选项面板,您可以创建速度为0kbps的配置文件。

网络链接调节器

在旧版OSX上:

山狮/小牛:Xcode > Open Developer Tool > More Developer Tools
狮子:/Developer/Applications/Utilities/Network Link Conditioner


11
使用网络链接调节器时,可达性没有任何变化。实际上,当我将其设置为0kbps和100%丢包时,它仍然报告一切正常并且可以通过wifi访问。这对于尝试测试飞行模式不起作用。
E.Freitas 2012年

1
您确定将左侧的大开关切换到“ ON”了吗?
蒂姆2012年

此处存在同样的问题,将链接调节器设置为0kbps上/下和100%数据包上/下丢失无济于事。不久之后,iOS Simulator就会超时。假定0kbps为最大带宽。
由Adrian设计


-1

更容易的黑客:使功能检查连接

import NetInfo from '@react-native-community/netinfo';

export const ckeckIsConnected = async () => {
  const isConnected = NetInfo.fetch().then((state) => {
    return state.isConnected;
  });
  return isConnected;
};

仅在有连接时才进行数据获取。要模拟无连接,false 无论实际连接是什么,只要返回此函数即可。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.