我是否需要在iPod touch,iPad和iPhone上单独测试?

时间:2012-12-21 03:16:06

标签: ios testing compatibility

我想开始为iOS开发。来自Android开发背景,我知道您可以获得更多类型的设备,更好的测试将是,因为所有设备都有完全不同的规格,并且在您的测试设备中可能完美运行的设备甚至可能无法运行另一个,更不用说看起来很好了。

我知道在实际设备上进行测试非常重要,因为在模拟器上测试的内容有很多限制,因此我决定使用实际设备。

然而,iOS世界中还有大量设备可用! iPod touch,iPad和iPhone各有几代和不同的配置(8GB版本与16GB版本,WiFi版本,3G版本等)。不是屏幕尺寸,而且宽高比在各种设备和包含的传感器之间也是如此。

我认为在不同的设备上运行运行的应用程序应该不难,但是有必要对您计划支持的所有设备类型进行实际测试吗? Apple并不以其低廉的价格而闻名,我希望尽可能降低起始成本。

因此,总结一下:是否有必要/建议在iOS开发世界中测试尽可能多的设备类型?

一个小小的澄清:我特别询问是否有可能存在与特定设备/设备系列相关的兼容性问题,我无法通过在仿真器上进行测试或完全无法捕获不同的设备。

5 个答案:

答案 0 :(得分:3)

一般来说,模拟器测试和设备测试之间的主要能力差异是:

  • 模拟器不使用与设备完全相同的沙盒。因此,例如,如果您的配置文件缺少Passbook凭据,则此问题将显示在物理设备上,但不会显示在模拟器上。
  • 模拟器通常不支持GPS,多点触控,推送通知,蓝牙和其他一些特定功能。
  • 在非视网膜显示屏上,iPhone 5+或(特别是!)视网膜iPad的模拟器视图将在100%时几乎无法使用,因为它的尺寸将超出屏幕尺寸。
  • 有一些非常罕见的崩溃只发生在模拟器上,还有一些只发生在设备上。
  • 模拟器并不总是支持您的应用支持的最早的iOS版本。例如,当前版本的Xcode(如果你想为最新的iOS版本构建,你必须使用它)只有5.0+的模拟器可用。
  • 据我所知,某些仪器的分析只能在模拟器中使用。

现在,在我的具体情况下,我尝试测试我支持的每个屏幕分辨率之一以及我支持的每个主要操作系统版本之一。

这归结为以下一系列测试设备:

  • (480x320)iPhone 3GS运行4.3.3
  • (1136x640)iPod 5gen运行最新的6.x
  • (960x640)iPhone 4S正在运行6.0
  • (1024x768)iPad 1st gen 5.0 5.0
  • (2048x1536)iPad第4代运行最新的6.x

请注意,iPad mini与iPad 1st gen的分辨率相同。

(我的选择偏向于后来的iOS版本,因为我喜欢在推出它们的时候实现与所有Apple的时髦可选功能的集成。如果其中一个6.x设备运行5.1,它可能会更加平衡。来代替。)

如果你不需要来支持4.x,我个人会建议反对它,因为iTunes Connect不再为它收集崩溃报告,模拟器不再提供它。当然,只有你可以决定你是否真的需要,如果你这样做,你可以将大量的测试集中在那里,因为如果你使用的是仅使用的API,Xcode不会警告你5.0,这将使运行4.x的任何设备崩溃。

请注意,有很多方法(有大量准备工作)降级设备上的iOS版本,所以如果你真的想要测试更多版本而不是设备,你可以(付出很多努力)。但无论如何,你可能最好还是为此培养一批强大的beta测试者。

答案 1 :(得分:2)

虽然在所有可能的设备上进行测试显然很棒,但iOS生态系统更紧密,因此您可以稍微缩小范围。

您可以从限制目标iOS版本开始。无论如何,这将削减许多旧设备。所有iOS设备的iOS6份额现在可能在发布4个月后约为75%; iOS5 + iOS6高达90%。如果你刚刚开始为iOS开发,你可能只是针对iOS6。

这意味着您的最低硬件平台是iPad2 / iphone3GS / ipodTouch4

设备总列表

iPad:   2 3 4 mini
iPhone: 3GS 4 4S 5
iPod:   4 5

十个设备。

但你不需要全部测试它们。你明智地把它缩小到......

iPad:   mini + one of the retina models
iPhone: 3GS + 5

用于日常测试。

显然,如果你想要更加兼容,只需将低端设备(iphone 3,iPad 1)替换为低端测试模型。

存储容量的差异(例如8GB与16GB)将无关紧要。

根据您的项目,您需要特别注意一些硬件功能。显而易见的是视网膜与非视网膜显示。位置服务的硬件功能在模型之间特别细微。

Lowendmac有一个非常彻底的iphone comparison chart ......

答案 2 :(得分:2)

  

我认为让应用程序在各种设备上运行应该   并不困难,但是有必要对所有人进行实际测试   您计划支持的设备类型?

这取决于你打算建立什么样的应用程序。例如,通用应用程序可在小屏幕和大屏幕设备上运行,但每个应用程序可能会有不同的表现形式,因此您希望能够同时尝试这两种设备。许多应用程序专门针对iPad,所以很明显在小型设备上进行测试是不必要的。 iPod Touch和iPhone非常相似,因此在一个或另一个上进行测试通常就足够了。

简而言之,您不必拥有每个设备的每个版本,而且您可能不必在每个版本的iOS上进行测试。释放。但您确实希望尽可能多地在不同的设备和操作系统版本上测试您的产品。因此,培养一组测试人员,他们将通过在他们的设备上试用您的应用来帮助您。 iOS开发人员计划允许您精确地向您的帐户添加100个测试设备,以便您可以在许多不同的情况下测试您的应用程序。

答案 3 :(得分:1)

iPod touch上的测试通常不值得。

在iOS世界中,通常有iPhone / iPod,iPhone 5 / iPod第5代和iPad。

因此,总共有3种屏幕尺寸。

如果您计划定位的不仅仅是最新的操作系统(iOS 6),那么就是测试的复杂性。仅仅针对iOS 5和iOS 6,您需要测试的目标数量几乎翻了一番。

我尽量保持简单。我在我的iPhone 5和iPad上测试。这两个都运行iOS 6.对于iOS 5和小型iPhone,我依赖于模拟器。

答案 4 :(得分:0)

我为Android和iOS开发,所以我得到了这个问题的来源。我很幸运能够在大多数不同的iOS设备上进行开发,我想说在大多数情况下,我会觉得在我的用户将使用的最先进的设备上进行测试很舒服。如果它在iPOd第三代上顺畅运行,那么它将在iPhone 4S,5等上运行得非常流畅。对于iPhone 5的不同屏幕高度,模拟器非常适合铺设它。

您需要考虑的事项是,您的应用程序是否可以选择仅使用手机具有的某些功能,例如拨打电话。此外,如果您想制作iPad或通用应用程序,拥有一台真正的iPad会非常方便,但模拟器确实非常好用。