iOS 4通常是向后兼容的吗?

我有以下问题,在不久的将来我将需要为iPhone编写一些不太复杂的应用程序。 我目前没有iPhone,所以我打算购买一个用于测试目的。 简而言之,iPhone 4允许我测试为较旧的ios版本编写的应用程序? 任何陷阱? 或者我是否必须购买较旧的手机/ ipad才能正确进行测试?

是的,要进行正确的测试,您需要在您支持的各个设备上进行测试。 该文档将告诉您旧iOS版本是否支持您使用的框架/ API。 我担心这里会有一些主观的答案,因为我确信有些应用程序最终会通过模拟器测试在许多版本中运行得很好。 在考虑向后兼容性(期望速度,内存使用,API等)时,有许多因素需要考虑。 你说你的应用程序“不是很复杂”,所以你可能没事。 我会在尽可能多的设备上测试您的应用程序。

我还应该区分“将它编译”和“它是否按预期执行”之间存在差异。 您可以使用xcode来测试应用程序是否与目标和旧版本兼容。 在特定设备上进行测试时,将发现应用程序是否按预期运行。

您无法在iPhone 4上运行iOS 3,因此您必须购买单独的设备。

但如果它是一个新的应用程序,我不会考虑使其与iOS3兼容。 大多数用户已经升级到iOS4。 当您的应用程序在商店中时,运行iOS3的用户将更少。

当然,这将删除0.5%的潜在客户。 但如果您只能从运行iOS3的0.5%客户那里获得10美元的收入,那么您不想以100美元购买另一台设备。 而且你必须再次测试你的整个应用程序,这将花费大量的时间。

所以你应该考虑放弃对iOS3的支持。

看到这个问题: 为iOS 3编译的应用程序是否可以在iOS 4上运行?

它允许您测试针对较旧iOS版本的应用程序,是的。

然而,与第一代iPhone / iPod touch等旧版iDevices的性能差异非常显着。 因此,如果您的应用程序需要昂贵的计算等,我建议您购买较旧的旧设备,以便在这一代硬件上获得性能。

请注意,如果您需要确保您要开发的应用程序将在非常旧的设备/ iOS版本上运行,您可能需要没有一些需要更新版本的iOS的cocoa类和方法

如果您购买iPhone 4用于测试目的..您正在测试市场上的最新iPhone,这并不意味着您的应用程序已准备好自动定位低端设备。

让我们深入了解一下:如果您设计的应用程序看起来非常漂亮并且可以在iPhone 4上开箱即用,那么您可能会使您的应用程序与Retina显示屏兼容。 这就像玩960×640分辨率屏幕一样。

现在,如果您打算将低端设备作为目标,例如iPhone 3GS,那么您所要做的就是将图形资产的大小减少一半,因为iPhone 3GS是320×480

而已! 从外观和感觉角度来看,您的应用程序也可以用于低端设备。

现在,让我们从部署角度来看。 如果您的SDK是4.2.1并且您的目标是运行3.3的设备,那么您所要做的就是确保您不使用iOS 4.2.1中引入的最新库/类,因为它们赢了“适用于在iOS 3.3上运行的设备。 如果您负责这部分,您的应用程序几乎已准备好发货。

从市场角度来看。 我看到所有出色的应用程序都将其部署目标设为iOS 4.0或更高版本。 这意味着,它们仅针对运行iOS 4.0或更高版本的设备。

我想,在iPhone 4设备上运行成功的测试周期后,您可以尝试在低端iPhone模拟器中构建。 🙂

iPhone通常不向后兼容。 有时会添加方法,属性,类等,或者旧的已被弃用。 对于测试,我建议您有多个具有不同iOS版本的设备,具体取决于您要发布的目标iOS版本。

另请检查iOS参考库 :在每个function等的“可用性”下,注意它是否可用