在开发iOS的过程当中,我们经常需要模拟不同的网络环境,来对程序进行测试。以下是分别对模拟器和真机状态下的两种不同的方法,亲测有效。

1.模拟器情况下

模拟器方面,苹果给我们提供了一个很实用的工具,Network Link Conditioner可以模拟各种不同状况下的网络环境,方便我们进行测试。

安装

Network Link Conditioner位于”Hardware IO Tools for Xcode”工具包中,这个包可以在Apple Developer Downloads下载得到,然后搜索Hardware IO Tools for Xcode,选择一个符合自己版本的下载。(具体的点击看某个Hardware IO Tools for Xcode看详情介绍)一般是最新的即可。

ios js环境模拟 苹果环境模拟器_ios js环境模拟

下载完成后,打开DMG文件,然后双击”Network Link Condition.prefPane”进行安装。

ios js环境模拟 苹果环境模拟器_网络状态_02


安装完成后,我们就可以在系统设置面板中的最下面找到它。

ios js环境模拟 苹果环境模拟器_Network_03


打开Network Link Conditioner的控制面板,我们就可以改变iPhone模拟器的网络环境,它提供了很多不同的网络状态,包括:

  • EDGE(2G)
  • 3G
  • DSL(电话线上网)
  • WiFi
  • High Latency DNS(高延迟)
  • Very Bad Network(网络状况不稳定)
  • 100% Loss(全丢包)

每一个状态都可以对带宽、延时和丢包率进行设置(如果任一项的值被设置为零,则那一项的值就与本机电脑的网络状态一致)。除了默认提供的配置,我们也可以创建自己的网络状态,以满足特殊的需求。可以点击Manage profiles,设置相应的状态。

ios js环境模拟 苹果环境模拟器_Network_04

2.真机情况下

其实Apple在iOS系统中预置了网络调试工具,但是只有添加过测试设备,并使用XCode连接下设备才能激活.

这时只要去设置中就可以看到多出来一项:开发者

ios js环境模拟 苹果环境模拟器_iOS_05

点击开发者进去,然后看到中间的那行NETWORK LINK CONDITIONER

ios js环境模拟 苹果环境模拟器_Network_06

其中Status是表示网络限制是否开启,点击进去就可看到详细设置

ios js环境模拟 苹果环境模拟器_网络状态_07

PS:这项开启后影响的是整个系统,所以调试完毕后不要忘记关掉,免得奇怪网络状态咋不正常了。。。