仅从 2018 年 7 月开始的 iOS 11 应用程序

Posted

技术标签:

【中文标题】仅从 2018 年 7 月开始的 iOS 11 应用程序【英文标题】:iOS 11 apps only from July 2018 【发布时间】:2018-05-25 16:26:42 【问题描述】:

我正在制作一个应用程序,并且我已经与几个人谈过它。他们希望在应用商店发布后下载它。

我收到了一封电子邮件并研究了哪些状态的更改:

“从 2018 年 7 月开始,所有新的 ios 应用程序和更新都提交到应用程序 商店必须使用 iOS 11 SDK 构建。”

与我交谈过的一些人拥有无法运行 iOS 11 的旧设备,我也无法在自己的手机上运行它(不过,我会在 iPad 上运行)。

因此,我想在 iOS 9 上发布,但在 7 月之前无法发布,所以我仍然可以发布该应用程序,并且与我交谈过的拥有旧设备的人可以下载它吗?

阅读后,您似乎可以将部署目标设置为低于“基础 SDK”。这是真的?如果 iOS 11 可以做 iOS 9 不能做的事情,这将如何工作?

因此,我要求澄清并回答上述 2 个问题。

【问题讨论】:

您应该仍然可以将 iOS9 设置为 iOS11 SDK 中的构建目标。 这对 iOS 9 用户意味着什么 - 某些功能会失效吗? 当然,如果该操作系统不支持它们。 developer.apple.com/library/content/documentation/… 我在另一个话题中回答了。您可以从这里查看:***.com/questions/51823995/… 您可以从这里查看其他主题的答案:***.com/questions/51823995/… 【参考方案1】:

该消息意味着您的应用必须使用 iOS 11 的 Base SDK 构建。这意味着您需要使用 Xcode 9。最好使用最新的工具。 Apple 一直在推动开发者前进。

但这并不妨碍您的应用支持较旧的 iOS 设备。如果您希望支持回 iOS 9,请将您的项目或目标的部署目标设置为 iOS 9.0(或您希望支持的任何旧版本)。

部署目标定义了您的应用支持的最旧 iOS 版本。 Base SDK 定义了您可以使用的最新 API。

诀窍是确保如果您在应用中使用较新的 API,则当应用在具有旧版本 iOS 的设备上运行时不得使用它。

有很多讨论涵盖了这方面的细节,但简而言之,在您设置的任何部署目标之后添加的任何 API 周围使用 #available

2018 年 7 月 5 日更新:

根据Supported Xcode and Application Loader versions 帮助页面,只有 iOS 应用和iOS 应用扩展需要Xcode 9。

【讨论】:

针对旧版本的旧应用程序呢?它们会保留在应用商店中吗? @Niroj 未更新的应用程序将保留在 App Store 中。但是,如果您更新应用以利用较新的设备,您的客户肯定会更开心。

以上是关于仅从 2018 年 7 月开始的 iOS 11 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Swift:将开始和结束日期格式化为单个字符串

2018年7月31日

iOS面试:简历模版(A4纸正反两面)

2018 年 11 月最新的 Windows 7 版本是啥

仅从数据框中选择每个月的最后一周 - Python/Pandas

仅从 Android 7.0 (Nougat) 开始支持默认接口方法