【问题标题】:How to require specific version of macOS?如何要求特定版本的 macOS?
【发布时间】:2017-03-28 20:27:49
【问题描述】:

例如:我的 Xcode 项目部署目标可以是 iOS 10.3 — 是否有需要 macOS 10.12.4 的等价物? (最新 SDK)

• iOS 10.3 是最新更新(可以在 Xcode 中定位)。
• macOS 10.12.4 是最新更新

我的目标/希望是针对最新的 macOS 更新,就像我可以针对最新的 iOS 更新一样。

结论:这在 Xcode 中(还没有?)是不可能的。 :(

【问题讨论】:

  • 您的问题解决了吗?
  • 不,在 macOS 上似乎无法实现所需级别的项目部署特异性。
  • 您更新了您的问题,但您的声明有误。对于两个系统 - iOS 和 macOS,它的配置方式相同。您只是不能在“补丁级别”版本上设置它。

标签: xcode macos xcode8 macos-sierra


【解决方案1】:

在构建时,您可以定义部署目标。这是操作系统次要版本的特定 API 级别。这将在此特定次要版本的所有补丁级别版本上运行。因此,在补丁级别设置部署目标几乎没有意义。

您只需使用少量代码即可检查您的应用程序是否在某些操作系统版本上运行。

operatingSystemVersionisOperatingSystemAtLeast(_:) 似乎在做你想做的事情: https://developer.apple.com/reference/foundation/processinfo/1414876-isoperatingsystematleast

如果未满足所需条件,您可以退出并拒绝使用该应用程序。

附: iOS 部署也只允许您选择 iOS 版本 10.3。例如,iOS 10.3.1 没有特定选项。

【讨论】:

    【解决方案2】:

    设置deployment target时不能选择这样的选项吗?

    链接到的页面还声明:

    Xcode 在应用信息中设置最低系统版本键 属性列表添加到您选择的部署目标。当你发布 你的应用程序到商店,它使用这个属性值来指示哪个 您的应用支持的版本。

    所以我想你也可以通过调整信息属性列表来改变它..

    【讨论】:

    • 谢谢,是的,这是通常的嫌疑人。适用于主要的 macOS 版本(10.11、10.12 等)。具体来说,我很好奇“10.12.4”——10.12 是主要版本,0.4 是次要版本。使用 iOS,这很简单。
    【解决方案3】:

    我可以通过编辑项目的project.pbxproj 文件来设置次要版本,该文件位于您的xcodeproj 包中。

    找到project.pbxproj 文件后,打开它并 搜索MACOSX_DEPLOYMENT_TARGET。您可以将其值设置为任何有效的 macOS 版本(不需要引号)。

    结果在 Xcode 的 UI 中正确显示,最重要的是,在编译时得到尊重。我已经使用#available 指令确认了这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 2020-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-26
      相关资源
      最近更新 更多