174

假设我将base SDK设置为7,这是什么意思?这可能意味着该应用程序将在 iOS 7 上运行。但这就是 iOS 部署目标的用途。

另外为什么我要在项目和目标中指定这 3 个值。这没有意义。为什么要两次指定同一件事?

4

3 回答 3

211

iOS 7 TechTalk会话 Architecting Modern Apps, Part 2 中,他们清楚地解释了这一点

在此处输入图像描述

好读嗨!我有空!

因此,现代应用程序可能使用 iOS 9 作为目标 SDK,并将 iOS 7 作为部署目标。这意味着您可以在 iOS 7、iOS 8 和 iOS 9 上运行,并且当实际在 iOS 9 上运行时,您可以使用任何 iOS 9 调用。

您可以在我的文章SDK 和部署目标中阅读更多内容

于 2014-03-20T14:54:40.407 回答
87

基本 SDK 是您构建应用程序所依据的(即包含和库文件和框架)。正如您所说,它不会影响部署目标,除了基本 sdk >= 部署目标。

您可以在 2 个级别上指定构建设置,因为每个项目可以有多个目标,并且您可能不希望所有目标都使用相同的设置。项目级设置覆盖默认设置,目标级设置覆盖项目级设置。

例如,我有 OSX 和 iOS 目标的项目,有些是 ARC,有些是 MRR。如果我无法以 Xcode 允许的粒度级别指定构建设置,我将不得不为每个项目设置不同的项目。

于 2013-09-02T08:25:16.530 回答
69

基础 SDK 是您链接的 SDK。部署目标是应用程序运行所需的最低 iOS 版本。您可以使用 SDK 7 构建在 iOS 6 下运行的应用程序。但是您必须注意不要使用任何在 iOS 6 上不可用的功能或方法。如果这样做,您的应用程序将在 iOS 6 上崩溃使用此功能。

有关更多详细信息,请参阅苹果文档:https ://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html

于 2013-09-02T08:26:07.987 回答