在 xcode 中 BaseSDK、 iOS 部署目标、 Target 和 Project 的含义是什么

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

还有为什么我在项目和目标中都指定了这3个值。这说不通啊。为什么要指定同样的事情两次?

75082 次浏览

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

可以在两个级别上指定生成设置,因为每个项目可以有多个目标,并且可能不希望所有目标都有相同的设置。项目级别设置重写默认设置,目标级别设置重写项目级别设置。

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

Base SDK 是您链接到的 SDK。部署目标是应用程序运行所需的最低 iOS 版本。您可以使用 SDK7构建在 iOS6下运行的应用程序。但是你必须注意不要使用任何在 iOS6上不可用的函数或方法。如果您这样做,您的应用程序将崩溃在 iOS6上一旦这个功能被使用。

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

IOS 7 TechTalk,会话架构现代应用程序,第2部分,他们清楚地解释了这一点

enter image description here

嗨! 我有空!很好

因此,一个现代的应用程序可能使用 iOS9作为目标 SDK,而 iOS7作为部署目标。这意味着您可以在 iOS7、 iOS8和 iOS9上运行,并且当实际运行在 iOS9上时,您可以使用任何 iOS9调用。

你可以在我的文章 SDK 和部署目标中读到更多