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

use*_*951 155 objective-c xcode4.5

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

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

onm*_*133 192

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

在此输入图像描述

好读嗨!我有空!

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

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

  • 很好的参考..这部分在这个50分钟的视频中被埋葬在25:17左右. (20认同)
  • 太好了!但是如果您设置Base SDK = 7.0并尝试安装到iOS 8.0会发生什么?我们是否必须下载最后一个XCode才能始终支持最新的Base SDK? (2认同)
  • @chichilatte不,你不需要.该应用程序仍支持iOS 12,iOS 13,...但它不具备iOS 12,iOS 13的任何新功能....要使用iOS 12的新功能,您需要针对iOS 12 SDK进行编译并使用来自iOS 12的API. (2认同)
  • 谢谢,这很有意义。我认为@ Kunal-Balani的上述评论是错误的。 (2认同)
  • @Kunal-Balani,其他评论者是正确的。如果出现比您构建的操作系统版本更新的操作系统版本,您*不必重新编译您的应用程序*,除非他们取消了对您的应用程序当前使用的支持*。更新的操作系统不会突然意味着您针对旧 SDK 构建的应用程序停止工作。如果是这样的话,没有人会升级,因为这意味着他们目前拥有的每个应用程序都将停止工作,直到出现新版本,这根本不是真的。 (2认同)

tro*_*foe 75

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

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

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


V1r*_*ru8 66

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