2009-12-17 18 views
10

我有点困惑于为应用程序商店和正确的SDK &操作系统版本构建应用程序。我已提交我的应用程序的应用程序商店,并在iTunes连接的应用程序的详细信息屏幕,它说:iPhone:最低操作系统,部署目标和基地/活动SDK

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

我还没有看到在任何应用应用程序商店有3.1.2作为最小的操作系统,他们都说3.0。在我创建它之前,我在这里阅读了几件事情,并且我认为我明白了一切!

基本上,我的应用程序不使用任何代码,只存在> 3.0,所以我想最低的操作系统为3.0。我的生成设置为:

目标信息

  • 基地SDK:iPhone设备3.0
  • iPhone OS部署目标:iPhone OS 3.0

Xcode的主窗口

  • A ctive SDK:iPhone设备3.1.2

我听说过在Info.plist中放入最低的操作系统版本,但我没有在我的这种东西。

我构建的应用程序完全一样,并提交它。我的应用设置是否正确?我的应用会在应用商店或3.1.2中显示3.0吗?我有点不确定你为什么要将Active SDK设置为最新版本(3.1.2),当你想要定位3.0,3.3.12设备时,但这是我阅读的内容!

任何帮助意见将不胜感激!

+0

看看这个回答类似的问题:http://stackoverflow.com/questions/380138/which-iphone-active-sdk-version-should-i -use/385125#385125 – 2009-12-17 14:33:03

回答

25

好吧,我已经成功地OS上运行的很好应用在阅读完毕后再想想它!

基本上,Active SDK只是基础SDK的构建时间覆盖。默认情况下,当基本SDK更改时,会自动将部署目标更改为与SDK相同的操作系统。因此,当我想在3.1.2 SDK下构建应用程序,但在3.0操作系统上运行应用程序时,我将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设置为与您的基本SDK相同,例如,设备3.1.2。但请记住在Device 3.0,Device 3.1和Device 3.1.2下编译您的应用程序只是为了检查编译器警告。这将确保您没有任何SDK中不存在的任何代码访问方法/框架直至您的部署目标。

我希望这可以帮助任何处于我的位置的人,并且找不到关于它如何工作的简单解释。

SDK Compatibility Guide是非常有用和信息丰富。然而,我花了一点额外的时间来理解这个概念以及一切如何运作。这从引导图像是有用的:

alt text http://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/cross_development/art/using_sdks.jpg

0

转到项目信息 - >构建,并期待在IPHONEOS_DEPLOYMENT_TARGET财产 其实我使用3.1.2 SDK,建设,每高于2.2.1

+0

这是如何工作的?如果您将Active/Base SDK设置为3.1.2,那么您的部署目标将更改为3.1.2,实际上不允许将其安装在低于3.1.2的任何内容上? – 2009-12-17 17:54:02

+0

它是一种魔术,或者obj-c动态运行时。可以构建使用OS 3.1专有功能的应用程序,但仍可与OS 2.0兼容。您只需避免标有“iPhone OS 3.0及更高版本中可用”的调用或在方法调用之前使用-respondsToSelector。 – vaddieg 2009-12-18 00:19:49

相关问题