Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 基本SDK 3.0到SDK 4.0_Iphone - Fatal编程技术网

Iphone 基本SDK 3.0到SDK 4.0

Iphone 基本SDK 3.0到SDK 4.0,iphone,Iphone,我安装了SDK 4.0,发现我无法访问3.2之前的所有SDK版本 我找到了下载SDK 3.1.3的链接,所以我有两个.dmg安装文件 问题: SDK 4.0是否不允许访问早期版本 如果上面的答案是否定的,那么这是否意味着我必须安装两个版本的SDK 如果上述问题是肯定的……如何解决 感谢希望部署目标可以设置为任何值(即使是2.2),但基本SDK除了3.2和4.0之外什么都没有。例如,如果将部署目标设置为3.0,我会认为基本SDK也可以设置为3.0 那么,如果部署SDK是3.0,而基本SDK是4.0

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

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

问题:

SDK 4.0是否不允许访问早期版本

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

如果上述问题是肯定的……如何解决


感谢希望

部署目标可以设置为任何值(即使是2.2),但基本SDK除了3.2和4.0之外什么都没有。例如,如果将部署目标设置为3.0,我会认为基本SDK也可以设置为3.0

那么,如果部署SDK是3.0,而基本SDK是4.0,那么编译哪个SDK?

注意:在新的SDK中,除了上面提到的3.2和4.0之外,您不能选择任何东西。

看起来苹果有问题。我还得到: 安装Snow Leopard和iPhone SDK 4后“缺少基本SDK”。 在我的例子中没有基本SDK。 我是这个系统的新手,我的本意是让这成为一个评论,而不是回答

更新: 仔细阅读SDK 4附带的自述文件后,我发现它(xCode 3.2.3和它的iPhone SDK4)不支持3.2之前的iPhone-解决方案是将旧SDK安装在不同的目录中。另外,如果使用较新的xCode/SDK,请不要忘记更新设备。
另一个更新:

请忽略此答案,查看上面由aizuchi提供的答案。不要忘记阅读关于基本SDK区域与部署不同的部分。

这个术语令人困惑,但一旦理解了这一点,就很容易了

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

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


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

据我所知,在提交应用商店时不推荐使用3.2和4.0以外的任何SDK。因此,从逻辑上讲,这些其他SDK也不再是xCode(3.2.3)中的选项。在我看来,试图绕过这一点是徒劳的。我已经编写了一个社区wiki,对其进行了更全面的解释。

例如,您需要将基本SDK设置为最新版本,并将iPhone部署目标设置为3.0


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

您可以使用SDK4.0和目标早期设备来测试可能的版本。这在a中有详细介绍。嗨,是的,我理解,可能问错了问题。我的问题是我不再看到低于3.2的部署版本了?啊哈!明白了,但看看为什么我会困惑。“因此,您不需要3.0的基本SDK在3.0上运行-只需将基本SDK设置为4.0,部署版本设置为3.0,并且不使用SDK在3.0之后不存在的任何功能。”您可以通过生成配置表单执行此操作,该表单允许您选择以前的版本。我通常使用工具栏设备选项来显示以前的所有版本,而现在使用SDK 4则不显示。好吧,至少我现在可以工作了:-)谢谢这是否意味着在运行前无法判断您意外使用了新的API?有人能帮忙吗?必须安装两个版本的XCode并在每个版本中编译相同的应用程序才能在早期版本上工作,这似乎很愚蠢?我只是想确认一下,我安装了SDK 4.0,这样我现在的目标只有3.2和4.0?如果我想构建任何更低的版本,我必须关闭XCode并打开较早的版本,使我能够访问3.2以下的目标。奇怪的是,在4.0的开发者文件夹中,它列出了早期目标的所有SDK,但不允许我从XCode中访问它们。救命啊!请ThanksChris很好地解释了部署目标和基本SDK设置如何工作,以及编译后的应用程序如何解析符号。这是错误的。即使您想支持旧版本的操作系统,也没有理由安装多个XCode副本。我相信您的观点是正确的。我花了很长时间才最终理解您所说的“iPhone OS部署目标”,它是获得对旧版本操作系统支持的地方。基本SDK只是在设置为3.2或4.0后开始运行,然后在下面的几个屏幕上执行部署字段。无论如何,非常感谢你的回答!你为什么要“绕开它”呢?您可以设置部署目标,就好像什么都没有改变一样。在许多级别上为False。首先,我认为你误解了部署目标。好了,这只是应用商店的一个标志,你仍然可以访问“基本SDK”的完整API,没有警告。您只负责有条件地使用超出部署目标的API。例如,我的部署目标是3.0,但我可以实例化UIgestureRecognitor(3.2+)。在将抛出错误的字段中。此外,有些人可能想“绕开它”,比如说,运行一个旧的模拟器,这是到目前为止您通过每次xCode升级都能做到的。