iPhone:最低操作系统,部署目标和基础/活动SDK

时间:2009-12-17 09:40:41

标签: iphone

我对为应用程序商店构建应用程序以及正确的SDK&操作系统版本我已将我的应用程序提交到应用程序商店,并在iTunes连接的应用程序详细信息屏幕中显示:

“最低操作系统要求:3.1.2”

我还没有在应用程序商店看到任何有3.1.2作为最低操作系统的应用程序,他们都说3.0。在我构建它之前,我在这里读了几个东西,我以为我理解了一切!

基本上,我的应用不会使用仅存在于>中的任何代码3.0所以我希望最低操作系数为3.0。我的构建设置是:

目标信息

  • Base SDK:iPhone Device 3.0
  • iPhone OS部署目标:iPhone OS 3.0

Xcode主窗口

  • Active SDK:iPhone Device 3.1.2

我听说Info.plist中有一个最低操作系统版本,但我没有这样的东西。

我完全按照这种方式构建应用程序并提交它。我的应用设置是否正确?我的应用会在应用商店或3.1.2中显示3.0吗?我不太确定为什么要将Active SDK设置为最新版本(3.1.2),当你想要定位3.0,3.1& 3.12设备,但这是我读到的!

非常感谢任何帮助建议!

2 个答案:

答案 0 :(得分:25)

好吧,经过多次阅读,我已经成功解决了这个问题!

基本上,Active SDK只是Base SDK的构建时覆盖。默认情况下,当Base SDK更改时,它会自动将部署目标更改为与SDK相同的操作系统。因此,当我想在3.1.2 SDK下构建应用程序但在3.0 OS上运行时,我将Active SDK更改为3.1.2,但这已自动更改了最低操作系统(部署目标)。我通过查看.app文件中包内容中的Info.plist文件看到了这一点。

因此,最好的办法是将Base SDK设置为最新的SDK(当前为3.1.2),然后手动将Deployment Target设置为3.0 OS。一旦2不同,它将不再自动改变。

但是,这意味着您的应用可以安装在可能具有3.0,3.1或3.1.2 SDK的3.0设备上。因此,您使用的任何仅在大于3.0的SDK中可用的框架,方法或属性都必须使用conditionally

当您开始构建应用时,请确保将Active Target设置为与Base SDK相同,例如:设备3.1.2。但请记住在Device 3.0,Device 3.1和Device 3.1.2下编译您的应用程序只是为了检查编译器警告。这将确保您没有任何代码访问任何SDK中不存在直至部署目标的方法/框架。

我希望这可以帮助那些处于我的位置并且无法找到一切有效的简单解释的人。

SDK Compatibility Guide非常实用且内容丰富。然而,为了让我对这个概念以及一切如何运作感到满意,我只花了一点时间。该指南中的图像非常有用:

alt text
(来源:apple.com

答案 1 :(得分:0)

转到项目信息 - >构建并查看IPHONEOS_DEPLOYMENT_TARGET属性 实际上我使用3.1.2 SDK并构建一个适用于每个高于2.2.1的操作系统的应用程序