2010-06-22 67 views
5

我安装了SDK 4.0,发现我无法访问3.2之前的所有以前的SDK版本。基本SDK 3.0到SDK 4.0

我找到了一个下载SDK 3.1.3的链接,所以我有两个.dmg安装文件。

问题:

SDK 4.0不允许访问早期版本吗?

如果上面的答案是否定的,那么这是否意味着我必须安装两个版本的SDK?

如果是对上述....怎么样?在希望

+0

[SDKs在使用Iphone SDK安装XCode的新版本时会消失?](http://stackoverflow.com/questions/3000241/sdks-disapearing-when-installing-new-versions-of-xcode- with-iphone-sdk) – zoul 2010-06-22 11:01:33

+0

您可以使用SDK4.0并定位早期的设备。这在[前一个问题]中有详细介绍(http://stackoverflow.com/questions/3027120/how-to-make-iphone-app-for-multiple-firmwares/3027213#3027213)。 – progrmr 2010-06-23 04:00:12

回答

0

部署目标

由于可以设置为任何东西(甚至2.2),但基本SDK无关除了3.2和4.0。例如,我想如果将部署目标设置为3.0,则基本SDK也可以设置为3.0。

因此,如果部署SDK为3.0,而基本SDK为4.0,哪一个正在编译?
请注意,在新的SDK中,您不能选择除上述3.2和4.0之外的其他任何内容。

+0

请任何人都可以帮忙吗?似乎很不得不安装两个版本的XCode,并在每个版本中编译相同的应用程序以使其能够在早期版本上工作? 只是为了确认,我安装了SDK 4.0,而且现在我只有3.2和4.0的目标? 如果我想构建到任何更低的地方,我必须关闭XCode并打开早期版本,使我可以访问下面的那些目标3.2。 奇怪的是,4.0版本的开发者文件夹中列出了早期目标的所有SDK,但不会让我从XCode中访问它们。 帮助!请..... 谢谢 – user7865437 2010-06-25 07:51:57

+0

克里斯,http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html有一个很好的解释如何部署目标和基地SDK设置工作,以及您编译的应用程序如何解析符号。 – 2010-07-01 23:33:17

0

看起来像苹果的问题。我在安装Snow Leopard和iPhone SDK 4后也得到: “Base SDK Missing”。 我的情况没有Base SDK。 我是系统的新手,并且意在使其成为评论,而不是答案。

更新: 在阅读SDK 4附带的自述文件后,我发现它(xCode 3.2.3及其iPhone SDK4)不支持3.2之前的iPhone - 解决方案是安装较旧的SDK在不同的目录中。另外,如果您使用更新的xCode/SDK,请不要忘记更新您的设备。
其他更新:
请忽略此答案,并查看由aizuchi提供的上面的一个。不要忘记阅读关于Base SDK区域与部署不同的部分。

+1

这是不正确的。即使您想要支持旧版本的操作系统,也没有理由安装多个XCode副本。 – user342492 2010-06-26 23:08:59

+0

我相信你是对的。我花了很长时间才终于明白你对“iPhone操作系统部署目标”所说的话,并且它正在获得对旧版操作系统的支持。基本SDK在设置为3.2或4.0之后就可以实现滚动 - 然后在下面的几个屏幕上执行“部署”字段。无论如何,非常感谢您的答复! – MCroswell 2010-06-27 06:24:13

7

术语很混乱,但一旦你明白这一点很容易。

'Base SDK'只是您正在编译的SDK版本。因此,您可以使用Base SDK中的任何类,属性或方法。

部署版本是您希望用户能够运行您的代码的操作系统的最早版本。如果您使用基本SDK版本中可用的功能,但不使用部署版本,则您的代码将在两个版本上启动,但在使用新功能时会在早期操作系统版本上崩溃,因此您需要检查新功能是否现在如果你想这样做。

因此,您不需要3.0的基本SDK在3.0上运行 - 只需将基本SDK设置为4.0,并将部署版本设置为3.0,并且不要使用3.0以外版本的任何SDK功能。

+0

嗨,是的,我明白,可能会问这个问题是错误的。我的问题是我不再看到3.2以下的部署版本? – user7865437 2010-06-23 11:26:39

+0

啊哈!明白了,但看看我为什么会产生混淆。 “因此,您不需要3.0的Base SDK在3.0上运行 - 只需将Base SDK设置为4.0并将Deployment Version设置为3.0,并且不要使用3.0以外版本的任何SDK功能。” 您可以通过构建配置表单来完成此操作,然后您可以选择以前的版本。 我用来做这件事的正常方式是从工具栏的设备选项,它用来显示所有以前的版本,而现在用SDK 4它没有。 至少我现在正在工作:-) 谢谢 – user7865437 2010-06-25 10:38:03

+1

这是否意味着在运行时无法告诉您意外使用了新的API? – jamesh 2010-06-25 11:13:28

0

据我所知,使用任何软件开发工具包除3.2和4.0以外的版本现在已被弃用于应用商店提交。因此,逻辑上,这些其他SDK不再是xCode(3.2.3)中的选项。国际海事组织,试图绕过这是徒劳的。我写了一个社区维基,它可以更全面地解释它here

+0

为什么你想要“绕过它”呢?您可以设置部署目标,就好像没有任何更改。 – typeoneerror 2010-07-06 08:02:25

+0

在很多层面上都是假的。 首先,我认为你是误解了部署目标。 AFAIK,它只是应用商店的旗帜,你仍然可以访问“基础SDK”的完整API,没有任何警告。您只负责有条件地使用超出部署目标的API。例如,我的部署目标是3.0,但我可以实例化一个UIGestureRecognizer(3.2+)。在会引发错误的字段中。此外,有些人可能想要“绕过它”,例如,运行旧模拟器的感觉,这是您通过每次xCode升级到现在为止所能做到的。 – 2010-07-06 15:43:39

0

您需要将Base SDK设置为最新版本,并将iPhone Deployment Target设置为3.0。

建议您测试早期版本的应用程序。