到 2023 年 4 月,Apple 要求我们 在构建和提交应用程序时使用 Xcode 14.1 和 iOS 16.1 SDK。
在 Xcode 中有 2 个字段:
“iOS 部署目标”:iOS 16.1(“默认”是指 16.1?在 xcode 14.1 中?)
“最低部署”:我们可以设置的最低iOS版本是11.0吗?还是 10.3 或 9.0?
更新:
根据this,这是否意味着我们必须使用 iOS 16.1 作为我们的“iOS 部署目标”和 11.0 作为 Xcode 14.1 中的“最小部署”:
这是你的第一张截图。
当您在左侧选项卡区域中选择项目后,然后在主选项卡面板区域中,您可以看到 iOS 的部署目标(以及 macOS,如果您也在那里部署,等等)。
此部署目标是一个后备默认值,如果您在左侧选项卡区域中选择了一个目标时删除了“最小部署”值,则会出现该值。
这是你的第二张截图。
在左侧面板中选择目标时看到的最小部署值控制from允许哪个版本的iOS(或macOS等)安装应用程序。
当 Apple 说你需要使用特定的 SDK 时,他们并不是在谈论部署概念。他们正在讨论使用哪个版本的 SDK 来编译应用程序。这称为基础 SDK。它随您使用的 Xcode 版本一起提供。如果 Apple 无法让开发人员使用最新的 Base SDK,他们就无法推动人们放弃旧的部署目标,因为每个 SDK 仅涵盖特定范围的部署目标。
Xcode 和 App Store 提交之间有一个微妙的交互。 Xcode 附带脚本和工具,可将您的应用程序上传到 App Store 以供审核。 App Store 作为一种网络服务,必须与正在使用的上传器相匹配,因为它们之间使用了私有 API。有一个切入点,旧的 Xcode 将无法上传到当前的 App Store。
强制使用特定的 Xcode 版本意味着 Apple 可以使上传工作流程现代化并随着时间的推移清理捆绑包格式和要求。
有时,如果您卡在给定的 Xcode 版本上,您可以使用最新 Xcode 的上传器来提交您的应用程序以供 App Store 审核。
在 2023 年 4 月进行转换,您将使用 Xcode 14.1 编译您的项目。这解决了 Base SDK 要求。您可以根据指定的表选择所需的部署目标。
“最佳实践”是去年的iOS大版本。测试当前版本和最新的 Beta 版本。
在现实世界中,它归结为您的用户社区。
Apple 的问题是如果您的应用程序无法在他们的新硬件上运行,这可能是部署目标太旧的结果。例如 2018 年 9 月 指南要求该应用程序将在 iPhone XS Max 上运行。
设置(强制)部署目标太旧通常会导致编译时错误。
我还没有听说过部署目标本身是 App Store 拒绝的原因,但如果有人可以分享任何关于它的轶事,我会很感兴趣。
指定太新的部署目标(未发布的 beta 软件版本)是一个问题。即使您不使用任何未发布的功能,您也会因此而被拒绝。