【问题标题】:What's the meaning of Base SDK, iOS deployment target, Target, and Project in xcodexcode中Base SDK、iOS部署目标、Target、Project分别是什么意思
【发布时间】:2013-09-05 06:55:25
【问题描述】:

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

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

【问题讨论】:

标签: objective-c xcode4.5


【解决方案1】:

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

好书Hi! I'm #available!

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

你可以在我的帖子SDK and Deployment Target阅读更多内容

【讨论】:

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

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

查看苹果文档了解更多详情:https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html

【讨论】:

    【解决方案3】:

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

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

    例如,我的项目同时具有 OSX 和 iOS 目标,有些是 ARC,有些是 MRR。如果我无法以 Xcode 允许的粒度级别指定构建设置,我将不得不为每个项目设置不同的项目。

    【讨论】:

      猜你喜欢
      • 2017-05-07
      • 1970-01-01
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-21
      相关资源
      最近更新 更多