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

时间:2013-09-02 08:21:02

标签: objective-c xcode4.5

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

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

4 个答案:

答案 0 :(得分:183)

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

enter image description here

好读Hi! I'm #available!

  

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

您可以在我的帖子SDK and Deployment Target

中阅读更多内容

答案 1 :(得分:74)

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

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

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

答案 2 :(得分:65)

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

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

答案 3 :(得分:0)

Base SDK是最大值,它始终由工具/ Xcode以及其随附的最新SDK / OS支持来控制。如果要支持低于当前版本的SDK / OS最高版本(基本SDK),则需要使用旧版本的Xcode。从Xcode Xcode 10开始,确切的版本取决于您的Xcode版本(例如,如果您使用的是Xcode 10.1,则iOS为12.1)。例如,当使用Simulator SDK进行构建时,二进制文件只能在与基本SDK相同的操作系统版本上运行

Deployment Target指定您的应用支持的 iOS的最低版本。因此,应始终将应用的部署目标设置为小于或等于其基本SDK。应该将其设置为应在其上运行代码的最低版本。

Link to the sourcelink