8

既然 iPhone SDK 4.0 已经可以下载,而且 iOS 4.0 也将很快向消费者提供,那么开始使用 4.0 操作系统中的新功能是否有意义?

我主要担心的是,使用 4.0 功能要求最终用户也将他们的手机/ipods 更新到 4.0。虽然这个过程非常轻松,但大多数用户更新是否合理?该应用程序本身并不真正需要在新操作系统中引入任何东西,但一些传统的动画技术现在“不鼓励”,转而支持基于块的对应技术。这对我来说很好,我更喜欢使用块方法,但我担心这会给最终用户带来麻烦。

那么这方面的一般经验是什么?您是继续使用最新最好的版本还是坚持使用当前版本?

ps 这假设GM在最终用户上安装可用的操作系统 - 不是测试版。

4

8 回答 8

22

这取决于。您至少有 3 个选项,最好的方法取决于您的应用程序的要求:

  1. 您的应用不需要任何 iOS 4.0 API - 您应该使用 BaseSDK 4.0 构建,但将 Target Deployment 设置为您必须拥有的最低版本(即:3.0)。
    优点:(1)您的应用程序可以在至少具有该 Target Deployment 版本的任何设备上运行,并且(2)它将支持在具有 iOS 4.0 的设备上快速切换应用程序。 缺点:您无法使用目标部署版本之后的任何 API。

  2. 您的应用程序使用 4.0 API 会更好,但如果没有它们,它仍然可以使用- 如果您可以有条件地使用 4.0 API,方法是在 iOS 4.0 之前的设备上提供减少的功能,或者在 4.0 之前的设备上使用不同的 API 时提供类似的功能,然后您可以使用 BaseSDK 4.0 进行构建,将 Target Deployment 设置为您必须拥有的最低版本(即:3.0)并有条件地使用 iOS 4.0 API 调用。 优点:您可以在至少具有最低 iOS 版本的所有设备上运行。 缺点:所有这些条件调用都会变得复杂。

  3. 您的应用程序需要一些 iOS 4.0 API 才能运行- 在这里您别无选择。使用 BaseSDK 4.0 构建,设置 Target Deployment 4.0 并使用那些 4.0 API。
    优点:代码更简单,iOS 版本没有条件 缺点:您的应用程序还不能在 iPad 上运行(他们在“2010 年秋季”中获得 4.0),您的应用程序永远不会在 3G 之前的 iPhone 上运行(他们没有获得 4.0 ) 并且某些 iOS 4.0 功能无法在 iPhone 3G 上运行。

在所有情况下,您的 Base SDK 将是 4.0,您的目标部署将是您需要的最低版本,如果您需要更新的 API,您可以有条件地使用它(如果设备有它)。

只需使用 BaseSDK 4.0 编译,即使您不使用任何 4.0 功能,您也可以在 4.0 设备上快速切换应用程序。所有应用程序至少都应该这样做,即使它们以 iOS 2.0 为目标。如果您不需要 4.0 功能,请不要使用它们,您可以针对更广泛的旧设备和未升级的设备。

这个关于 SO 的最新答案总结了如何为 BaseSDK 和目标部署进行此设置,以及如何有条件地使用 API 来定位多个固件版本。

于 2010-06-26T04:04:38.600 回答
4

推荐的配置是将 Base SDK 设置为最高(即 4.0)并将 Deployment Target 设置为适当的版本(取决于您的应用程序中使用的框架功能)。

当然,该应用程序始终可以检查操作系统版本并跳过对不受支持的框架的调用。这是构建 iPad 和 iPhone 通用应用程序的常用技术。

于 2010-06-22T01:39:03.900 回答
1

我认为大多数用户会升级是安全的,因为这是 3.0 的免费升级。很明显,Apple 热衷于让用户使用 4.0,这就是它免费的原因。

与正常更新一样,iTunes 会唠叨升级,如果您需要重新安装手机通常会重定向到最新版本。

当您销售应用程序时,您可以相当确信您的买家可以访问互联网,并且至少偶尔会对接他们的手机并获得免费更新请求。以前更新过手机的人很有可能同样升级到 iOS4。

目前,在我看来,继续使用 3.x 的主要动机是为了与 iPad 兼容。

您还应该考虑在未来 6 个月内您的销售预期如何。不使用最新功能的代价是什么?您能否通过 4.0 缩短开发时间或添加尖端功能?竞争应用程序能否利用 4.0 功能获得优势?将其宣传为 4.0-only 可能会对应用程序的感知产生积极影响。

会有一定比例的人因为您使用 4.0 而无法运行您的应用程序。诀窍是要弄清楚销售损失是否大于或小于通过将它们抛在后面而获得的收益。

您期望的买家越多,让他们所有人运行您的应用程序就越值得。此外,购买者可能是具有计算机专业知识的人吗?如果是这样,那么他们可能更不可能留在 3.x 上。

另外,请记住 iPhone 3G 之前的手机不支持 iOS4。

还有一个补充:

Apple 已经开始从 AppStore 中排除 2.0 应用程序,请参阅https://developer.apple.com/iphone/checklist/

于 2010-06-29T18:01:12.800 回答
1

在我看来,如果您可以等待几个月让人们过渡到 4.0,那么请稍等,否则就继续使用 4.0 的功能。

根据我前几年的统计数据,2.0->3.0 升级需要一年多的时间,但主要是 iPod touch 用户,因为 Apple 收取 10 美元的费用。

我预计 4.0 的采用率会快得多,但请记住,第一代 iPhone/IPods 没有获得 4.0 升级。

于 2010-06-27T18:32:42.163 回答
1

我个人通常将目标定位在一个主要版本之后(即目标 3.1 而不是 4.0),这通常会给我一个窗口“你在去年更新了你的手机吗?” 但是根据您的应用程序,您可能能够使用仅在 4.0 中的多任务处理或其他功能。然后,这取决于您认为您的用户会立即想要什么。如果您认为他们可以稍等,看看情况如何;如果您发现很多用户正在快速迁移到 4.0,那么就推出您的更改。

于 2010-06-21T21:34:24.500 回答
1

我发现查看安装了旧操作系统和新操作系统的 iphone/mac 等设备的数量并不能告诉您太多有关其所有者的消费习惯的信息。

在应用商店花钱的人更有可能更新过操作系统软件。

如果您的应用程序有任何复杂程度,则发布将需要一些时间,并且您将有一个非常小的窗口,其中 iPad 仍在运行 3.x。

为多个操作系统级别开发是一种痛苦。除了需要在 iPad/iPhone/iPod 上运行您的应用程序之外,现在您还必须使用 2 个操作系统来执行此操作。错过检查一个地方,你只在很少执行的代码中调用 4.0 并且你会崩溃。

为了代码库的长期稳定性,仅在新应用程序上构建 4.0 也很好。简单更好。

于 2010-06-29T18:57:24.770 回答
0

progmr 已经给出了很好的答案;值得添加的一件事是一些硬数据:

http://www.appleinsider.com/articles/10/07/22/chitika_ios_4_already_powering_50_of_iphone_traffic.html

IE。50% 的 iphone 用户(截至 2010 年 7 月正在安装和使用带有广告的应用程序)仍在运行 4.0 之前的版本。

于 2010-08-18T16:31:28.410 回答
0

是的,IMO 使用 OS 4.0 中的新功能绝对有意义。至少安装了 4.0 的用户对不支持快速应用切换(以及 iPhone 4 的更高分辨率显示)的应用几乎没有容忍度。

我主要担心的是,使用 4.0 功能要求最终用户也将他们的手机/ipods 更新到 4.0。

这不是真的。支持新功能不需要您放弃对旧操作系统版本的支持。只需将 Base SDK 设置为 4.0,将 Deployment Target 设置为 3.x。并确保您的代码不会在不检查它们是否存在的情况下调用 4.0 特定的方法(respondsToSelector:)。

于 2010-06-21T21:39:39.310 回答