XCode 4目标部署目标与项目部署目标

Ale*_*lex 47 iphone xcode

请原谅我的无知,但是"目标"下的部署目标字段与"项目"下的部署目标之间的XCode 4有何不同?

如果我的项目部署目标是3.2,而我的iOS应用程序目标是4.0,会发生什么?或相反亦然?

Ole*_*ann 62

目标设置会覆盖项目设置.项目设置适用于尚未覆盖其设置的所有目标.

  • @JamesWebster:谢谢,但这只是两句话,让我们不要大肆宣传. (11认同)
  • 那么它们应该设置为相同的值吗?或者 iOS 应用程序目标 >= 项目部署目标,因为如果它被更高的目标覆盖,它就无法在较低的 iOS 上工作? (3认同)
  • 如果项目中只有一个目标(或者所有目标应共享相同的部署目标),则只需为项目设置一次即可,目标将继承该设置。如果您有多个具有不同部署目标设置的目标,则必须在偏离项目级别设置的所有目标上显式设置它。 (2认同)

And*_*rej 8

更新: 正如先生所澄清的那样。@Edward,“项目”级别的版本作为default,而“目标”级别的版本 覆盖默认值。

实际上苹果文档中是这么写的:

“目标设置覆盖项目设置。”

Base SDK 与此无关。

原帖:

查看Apple文档中的链接...看起来当您将版本设置为“目标”级别时,您指定了用户运行您的应用程序所需的最低版本。

另一方面,通过将版本设置为“项目”级别,您可以指定在开发时可以使用哪些 SDK。因此,如果 API 仅适用于最新版本,您会收到编译器错误,通知您必须以不同方式处理缺少 API 的行为(可能使用#available@available)。

在此输入图像描述

我是这样理解上图的:

  • 您可以使用主要版本中的所有 API,
  • 您的用户仅当至少安装了“部署目标”版本时才能下载该应用程序
  • 您可以使用“Base SDK”版本之前的 API
  • 您的项目中无法使用“Base SDK”版本以上的 API

  • 正如您所指出的,默认情况下,目标有两个“IPHONEOS_DEPLOYMENT_TARGET”实例:一个用于调试,一个用于发布。该项目有对应的一对。所有 4 个属性都与部署目标相关。没有一个与 Base SDK 相关。这些属性的名称恰当地描述了它们的功能。两对的原因是项目作为默认值,而目标作为[可选覆盖](/sf/answers/4511071071/)。 (3认同)

Edw*_*rey 8

项目页面上的 iOS 部署目标是项目中所有目标的默认设置。每个项目上的 iOS 部署目标是可选的项目级覆盖。

\n

要设置从项目继承的目标,不能使用“General \xe2\x86\x92 Deployment Info”部分。相反,请转到“Build Settings \xe2\x86\x92 Deployment”,对于“iOS Deployment Target”,选择“Other...”并输入$(inherited).

\n