Base SDK,iOS部署目标,Target和Project在xcode中的含义是什么?

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

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

基础SDK是你构build你的应用程序(即包括和库文件和框架)。 正如您所说,除了基础sdk> =部署目标之外,它不会影响部署目标。

您可以在两个级别上指定构build设置,因为每个项目可以有多个目标,您可能不需要为所有目标设置相同的设置。 项目级设置将覆盖默认设置,目标级设置将覆盖项目级设置。

例如我有OSX和iOS目标的项目,有些是ARC,有些是MRR。 如果我无法使用Xcode允许的粒度级别指定构build设置,那么每个项目都必须有不同的项目。

在iOS 7 TechTalk中 ,会议架构现代应用程序,第2部分,他们解释清楚

在这里输入图像描述

好阅读嗨! 我有空!

所以,一个现代的应用程序可能会使用iOS 9作为目标SDK,而iOS 7则作为部署目标。 这意味着您可以在iOS 7,iOS 8和iOS 9上运行,并且实际在iOS 9上运行时,您可以使用任何iOS 9调用。

我只是总结了SDK和部署目标

Base SDK是您链接的SDK。 部署目标是应用程序需要运行的最低要求的iOS版本。 您可以使用在iOS 6下运行的SDK 7构build应用程序。但是,您必须注意不要使用iOS 6上不可用的任何函数或方法。如果这样做,则应用程序将尽快在iOS 6上崩溃这个function被使用。

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