ios开发IOS知识整理IOS网友们的篇章

Xcode修改模拟器Simulator版本

2017-03-30  本文已影响2624人  MeaningfulLiu

我们一个最近上线的项目,通过友盟统计里的错误分析工具,查看到有一个bug在刚上线的一个星期里出现次数仅有两次,通过错误定位,也没发现代码有什么问题,我自己试图在真机和模拟器上测试试图复现问题,却没有出现,测试人员在之前的测试中也没出现该问题,就比较纳闷。

错误信息.png

通过友盟看到出现问题的设备是iPhone6,iOS8.1.2,影响用户数1人。而测试用的真机和模拟器都是iOS10以上的版本,就自己猜想是不是手机系统的版本问题引起的,然后试图在iOS8上测试一下,发现目前使用的Xcode8上模拟器的版本是iOS10.2,在公司里也没找到低于iOS10版本的真机了,所以只能想办法从模拟器上着手了。下面就具体介绍新增模拟器版本了。

从Xcode菜单栏里打开Xcode -> Preferences -> Components -> Simulators,下载对应版本的模拟器。

Xcode8下载模拟器版本.png

由于模拟器相关文件较大,下载时间较长,需要耐心等待,下载完成后,对应版本的模拟器前面的下载按钮就会变成下载完成的样式。

Xcode模拟器iOS8.1下载完成.png

点击Xcode菜单栏 Window -> Devices,然后可以看到设备列表,然而在模拟器列表(SIMULATORS)下,没有看到iOS8.1版本的模拟器。

添加目标模拟器.png 选择目标模拟器设备和版本.png

那就点击左下角的加号,添加模拟器,先选择模拟器设备(Device Type),然后选择系统版本(OS Version),再给模拟器命个名,点击Create,就新增成功了,模拟器列表里就有了刚才新增的模拟器。

目标模拟器添加完成.png

新增目标模拟器完成后,需要关掉Xcode重启一下,然后打开你的项目,选择你新增的目标模拟器,就可以在你的目标模拟器上运行了。

选择在目标模拟器上运行.png 运行在目标模拟器上.png

ps:通过在目标模拟器上的测试,问题复现了,后来查出来的问题是粗心地把一个model的一个NSString属性设置成assign属性了【被assign修饰的ObjC对象释放后,指针还是指向释放前的内存,在后续操作中可能会导致内存问题引发崩溃。】,但是也不知道为什么在iOS10上这个问题没有被发现,在iOS8上却被发现,明天研究一下。正如我这种情况,有时候出现可能是由于版本原因引起的问题,又没有对应版本的真机时,不妨通过这种方法,修改模拟器版本试一下。

上一篇下一篇

猜你喜欢

热点阅读