ios - 仅从 2018 年 7 月开始的 iOS 11 应用程序
问题描述
我正在制作一个应用程序,我已经和几个人谈过了。他们希望在应用商店发布后下载它。
我收到了一封电子邮件,并研究了以下状态的更改:
“从 2018 年 7 月开始,所有提交到 App Store 的新 iOS 应用和更新都必须使用 iOS 11 SDK 构建。”
我交谈过的一些人拥有无法运行 iOS 11 的旧设备,我也无法在自己的手机上运行它(不过,我会在 iPad 上运行)。
因此,我想在 iOS 9 上发布,但在 7 月之前无法发布,那么我是否仍然可以发布该应用程序,并且与我交谈过的拥有旧设备的人可以下载它吗?
阅读后,您似乎可以将部署目标设置为低于“基础 SDK”。这是真的?如果 iOS 11 可以做 iOS 9 不能做的事情,这将如何工作?
因此,我要求澄清和回答上述两个问题。
解决方案
该消息意味着您的应用程序必须使用 iOS 11 的 Base SDK 构建。这意味着您需要使用 Xcode 9。最好使用最新的工具。苹果一直在推动开发者前进。
但这并不妨碍您的应用支持较旧的 iOS 设备。如果您希望支持回 iOS 9,请将您的项目或目标的部署目标设置为 iOS 9.0(或您希望支持的任何旧版本)。
部署目标定义了您的应用支持的最旧 iOS 版本。Base SDK 定义了您可以使用的最新 API。
诀窍是确保如果您在应用程序中使用较新的 API,当应用程序在具有较旧版本 iOS 的设备上运行时,不得使用它。
有很多讨论涵盖了这方面的细节,但简而言之,#available
围绕在您设置的任何部署目标之后添加的任何 API 使用。
截至 2018 年 7 月 5 日的更新:
根据Supported Xcode and Application Loader 版本帮助页面,只有新的iOS 应用和 iOS 应用扩展需要 Xcode 9。
推荐阅读
- substrate - Kusama - 提供的主机标头未列入白名单
- reactjs - TypeError:无法读取未定义的属性“道具”
- rust - 如何使用泛型函数来减少这种重复代码
- kotlin-coroutines - 是否有与协程流等效的 withLatestFrom?
- r - R中是否有关于“build_matrix”函数的文档?
- unit-testing - AssertionError: None != 'attachment; 文件名=文件名.extension'
- reactjs - 对象作为 React 子级无效。(发现:日期(印度标准时间))如果您要渲染一组孩子,请改用数组
- javascript - 如何限制在输入类型 =“数字”中输入十进制值
- swift - SwiftUI 中的圆角边框
- python - Jupyter Notebook - ValueError:int()的无效文字,基数为10:''