可以将Xcode设备模拟器用作测试应用程序与旧版iOS版本兼容性的可靠方法吗?

问题描述:

我正在测试我的应用程序与Xcode设备模拟器,以确保所有功能至少与iOS 8.1工作良好,我意识到一些让我困惑的东西。有一些功能的代码具有8.3的可用性,但是当我在运行8.1的模拟器上运行我的应用程序时,一切都按预期工作。这是怎么回事?考虑到几乎90%的用户拥有9.0以上的版本,它甚至值得支持低于9.0吗?可以将Xcode设备模拟器用作测试应用程序与旧版iOS版本兼容性的可靠方法吗?

+0

目前在iOS 9下可能不值得支持,但这取决于您的用户群。此外,苹果公司有时会在公开发布之前私下测试iOS中的API。在公开发布之前,不要在任何版本的iOS中使用API​​,因为行为不能保证一致(甚至无法保持一致,并且通常不是无错的)。 –

有问题的代码与以前的OS版本发布的类有关吗?如果在您设置为部署目标的操作系统版本发布时对象本身不可用,则应该得到编译时错误,指出“XX仅适用于iOS XX或更新版本”

如果它只是一个新的方法到现有的类,你可能可以让它建立和模拟。调用代码应该会导致应用程序崩溃。使用日志语句来确保方法实际上被调用。

我会建议,大多数情况下,您应该使用模拟器来测试UI,并且您的数据计算或应用程序/业务逻辑工作与否。但是,您必须尝试使用​​真实设备来测试应用程序的性能,因为每个iPhone的硬件都不同。回到你原来的问题 - 当你说模拟器上的一切正常,但不是在真实的设备上时,是否有任何具体的事情要尝试调试?

+0

它在模拟器和设备上都可以正常工作。我不明白的是,如果代码在iOS 8.3中可用,它是如何在运行iOS 8.1的模拟器上运行的? – kevingalarza29

您应该使用设备进行测试,因为在模拟器和实际设备中实现的东西存在巨大差异。您可以使用模拟器进行逻辑测试。