假设我将基本SDK设置为7,这是什么意思?这可能意味着该应用程序将在iOS 7上运行。但这就是iOS部署目标的目的。
另外,为什么我要在项目和目标中指定这3个值。这没有意义。为什么两次指定相同的东西?
答案 0 :(得分:183)
在iOS 7 TechTalk会话构建现代应用程序,第2部分中,他们清楚地解释了这一点
因此,现代应用程序可能会使用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。应该将其设置为应在其上运行代码的最低版本。