2010-09-19 121 views
5

几个月前,我收到了来自Apple的令人震惊的电子邮件,告诉他们他们会拒绝每个不是针对iOS 4.x SDK构建的应用程序。现在我想知道是否:是否仍有可能为较老的iOS设备开发?

1)这是一个坏的笑话? 2)如果不是这样:这是否意味着我的应用只能在iPhone4,iPod touch 4或任何安装了iOS 4.x的设备上运行?

我下载了最新的iOS SDK,我只能针对3.2或4.1进行构建,我相信3.2仅适用于iPad。现在我可以丢弃6个安装了较旧操作系统的iPod touch,或者我很幸运,仍然有一种方法可以为它们编码,而无需全部升级到4.1。

您认为如何?什么是真相?

+1

此问题假定4.x SDK仅用于定位4.x设备。那是不正确的。 “SDK”和“部署目标”有所不同。 – benzado 2011-08-23 22:36:21

回答

7

几个月前,我得到了一个令人震惊的 电子邮件从苹果,告诉他们 将拒绝每一个应用程序,是不是 内置的iOS对4.x版SDK。现在我 想知道是否:

1)这是一个坏的笑话?

不,但这是件好事。

首先,它鼓励开发人员继续使用最新的SDK。

其次,它鼓励用户更新到最新的固件。 (更少的错误,更多的稳定性,更少的安全漏洞)。

第三,它提供了一个固定的目标,您在提交应用程序时不得不担心。如果苹果针对iOS的每个版本进行了测试,那么应用程序需要永久批准,并且最终会在特定设备上的特定固件版本上出现各种各样的小错误。这将是疯狂。

2)如果不是:这是否意味着我的应用程序 只会在非常鲈 设备一样的iPhone4,iPod touch的4,或 任何设备已安装的iOS 4.x的运行?

您可以在构建设置中为您想要的任何设置部署目标,但我建议不要低于3.1.x的任何应用程序。由于(1),大多数用户使用4.x,使用3.x的比例很小,而几乎没有人使用2.x或1.x.

我下载了最新的iOS SDK和我 只能建立针对3.2或4.1, ,我相信3.2仅适用于iPad。 现在我可以扔掉我的6 iPod 触摸与安装旧操作系统或我 幸运,仍然有一种方法来编码 他们没有升级他们全部到 4.1。

如果你有一个较老的iPod Touch(和我一样 - 第一代),请保留它(3.1.3)以测试你的应用程序。不要把它扔掉。

+0

你会详细介绍如何设置该部署目标?那究竟是什么意思?例如,当我使用iOS 3.0中不可用的方法时,Xcode会告诉我吗? (是的,我的每个iPod touch都在这里......猜测开发人员是苹果最好的客户) – openfrog 2010-09-20 07:58:54

+0

您可以在项目的构建设置中设置部署目标:获取项目信息并点击“构建”选项卡。它向设备指定必须在设备上的iOS的最低版本,供设备运行该应用程序。 Xcode不会告诉你在3.0中有哪些方法,除非这些方法已被弃用。你必须弱化UIKit库的链接,然后通过你的代码来检查,以及彻底的测试。 – 2010-09-20 16:33:18

3
  1. 不,它是“根据苹果的法律”。
  2. 不,它不。有一个名为“部署目标”的设置,您可以设置iOS 3.0或更高版本。用它。但是您必须针对iOS 4 SDK进行构建。

事实是苹果所说的,以及我刚刚澄清的内容。 :)

+0

您可以详细了解如何设置该部署目标?那究竟是什么意思?例如,当我使用iOS 3.0中不可用的方法时,Xcode会告诉我吗? – openfrog 2010-09-20 07:57:08

+0

SDK文档告诉你什么时候API变得可用,以及它何时(如果已经)已经被弃用。在方法上使用'command-option-double click'来调出该方法的内联文档。另外,在您的目标的构建设置中,您可以在其中找到“部署目标”。它有一个下拉列表,选择一个。 – jer 2010-09-20 07:59:39

+0

在项目设置中,将“基础SDK”设置为“最新”,然后将您的“部署目标”设置为尽可能低。我仍然支持3.0! (但不长久…)。 – 2011-06-20 04:27:48

1

您仍然可以为较旧的设备开发。您只需将部署目标设置为您支持的较旧的iOS版本即可。但是,您必须重新构建最新的SDK。

你可以找到官方documentation的更多信息。

+0

“针对最新的SDK构建”意味着将基础SDK设置为高? – openfrog 2010-09-20 10:16:01

0

从Xcode版本4.5开始,不再支持Arm v6的开发。这意味着您无法构建可在原始iPhone,iPhone 3G或第1代/第2代iPod Touch上运行的应用程序。如果您尝试使用3G构建,它会给您一个警告,说它不是受支持的设备。

如果您需要支持那些较旧的设备,则必须使用Xcode 4.4.1。如果您使用该版本,则仍然可以通过设置部署目标来支持iPhone OS 3。你可以下载older Xcode versions from Apple

现实情况是,iPhone OS 3上的人很少,除非你有很好的理由,否则你应该碰到iOS 4. Check the stats,看看它是否真的值得。

相关问题