首页 > 解决方案 > 确定尽可能低的 iOS / macOS 部署目标的最佳方法

问题描述

有没有办法给定 iOS 或 macOS 代码库,确定可能的最低值IPHONEOS_DEPLOYMENT_TARGETMACOSX_DEPLOYMENT_TARGET我可以安全地为项目设置,以便捕获最大的潜在支持设备数量?我不想随便说“iOS 11”之类的东西,因为这会让使用旧操作系统的用户望而却步。另一方面,每个 API 调用都需要特定版本的操作系统,我没有记录我所做的每个 API 调用,也不想全部查找。

例如,我的应用程序调用的数千个 API 中可能有一个需要 iOS 10,但在 iOS 9 上会失败。有没有办法判断?只是设置IPHONEOS_DEPLOYMENT_TARGET为 8.0 似乎编译得很好(没有警告),但这并不一定意味着我可以很好地部署在 8.0 设备上。

这个类似的 8 岁问题表明当时没有这样的工具。想知道从那以后是否有任何变化。

标签: iosobjective-cxcodemacostarget

解决方案


如果您使用的任何 API 可能存在问题,Xcode 10(和 Xcode 9)会警告您。例如,如果您的部署目标设置为 iOS 11,并且您尝试使用在 iOS 12 中添加的 API,Xcode 会警告您。

因此,将您的项目或目标的部署目标更新为您想要的任何内容,并让 Xcode 为您提供有关此类 API 甚至已弃用 API 的警告。

然后,您可以使用警告上的“修复”按钮if (@available ...)围绕较新的 API 添加适当的检查,然后您可以添加所需的任何代码else以支持较旧的 iOS 版本。

如果您觉得您遇到了太多此类 API 问题,请根据需要更改您的部署目标。


推荐阅读