基础与活动与部署目标

时间:2009-08-31 15:34:14

标签: iphone deployment settings submission

我知道这个问题的某些部分是在几个变体中被问到的,但我想确保我做对了。

以下是我的假设和理解,如果在提交之前它们是正确的,我想知道。

我的应用程序假定所有操作系统都支持的功能,因此我应该:

  1. 将Active SDK设置为最新版本(目前为SDK 3.0)。
  2. 将部署目标设置为我想要支持的较低级别 - iPhone 2.0及更高版本?
  3. Base SDK到底是什么用的?我是否应该忽略它,如果我选择Active SDK不同,我在哪里可以看到项目设置中的Active SDK?
  4. 最后一个问题 - 苹果允许选择iPhone OS 2.0作为部署目标吗?

    提前致谢,

    BTW - 这个问题的主要原因之一是因为在使用早期的SDK编译时,当这个动画被保存多次使用时,苹果似乎在释放UIImageView动画数组的内存时遇到了问题。这是用SDK 3.0修复的已知问题(通过简单地将UIImageView动画数组设置为nil)

4 个答案:

答案 0 :(得分:28)

Base和Active SDK之间的区别在于前者是项目的默认SDK集,后者是您当前构建的SDK。因此,您的Active SDK可能是Base SDK,此时XCode将使用您为项目指定的SDK。

为了尽可能为最广泛的设备构建您的应用,您是对的:

  • 将Base SDK设置为最新的SDK(3.0,3.0.1)
  • 将部署目标设置为最早的SDK(2.0)

Apple允许您将iPhone 2.0指定为部署目标,但请记住在iPhone 2.0之后发布的任何API或框架,默认情况下您无法使用它们。有techniques to use features from later SDKs,但它们并不重要。

答案 1 :(得分:8)

您应该将Base SDK构建设置设置为包含您打算使用的所有功能的最新SDK(通常是最新的可用SDK),并将“iPhone部署目标”构建设置设置为最早版本的您想要运行的操作系统。

然后,您需要确保在运行时检查早期操作系统中可能不存在的任何功能。

答案 2 :(得分:3)

“Base SDK”是您的应用程序可以支持的最大SDK。这里有一个硬限制 - 您无法选择未来未发布的SDK。

“部署目标”是您愿意支持的最低SDK。你愿意回到多久。

Xcode似乎对“部署目标”造成虚假依赖。例如,即使在此安装上安装了4.3,5.0和5.1 API和模拟器,我也无法使用Xcode 4.5.2(Xcode 4.5.2与iOS 6.0配对)在我的iOS 5.1.1 iPod上进行开发。我需要在我的iOS 6.0 iPhone中使用模拟器或插孔。

Apple正在玩的游戏似乎也会导致应用程序出现问题。我购买的Elements副本不会通过iTunes同步到iPod,因为Elements需要运行更新版本的iOS(它在我的iOS 6.0 iPhone上同步并运行良好)。

我有两台iPad,一台是4.3。我不禁想到它会造成多么混乱。

答案 3 :(得分:1)

一般而言;

将BASE SDK设置为您愿意支持和测试的最新SDK。

将部署目标设置为您愿意支持和测试的最低版本的iOS。

如果您碰巧使用部署目标SDK上未提供的Base SDK功能,则应用程序将在运行时在旧设备上崩溃,因此测试至关重要。

替代/补充过程将使用Deploymate http://www.deploymateapp.com/进行静态代码分析以识别问题。

如果你来自android世界,那么类比就是这样;

TargetSDK - >基础SDK

MinSDK - >部署目标

Lint - > Deploymate