ios - 确定尽可能低的 iOS / macOS 部署目标的最佳方法
问题描述
有没有办法给定 iOS 或 macOS 代码库,确定可能的最低值IPHONEOS_DEPLOYMENT_TARGET
或MACOSX_DEPLOYMENT_TARGET
我可以安全地为项目设置,以便捕获最大的潜在支持设备数量?我不想随便说“iOS 11”之类的东西,因为这会让使用旧操作系统的用户望而却步。另一方面,每个 API 调用都需要特定版本的操作系统,我没有记录我所做的每个 API 调用,也不想全部查找。
例如,我的应用程序调用的数千个 API 中可能有一个需要 iOS 10,但在 iOS 9 上会失败。有没有办法判断?只是设置IPHONEOS_DEPLOYMENT_TARGET
为 8.0 似乎编译得很好(没有警告),但这并不一定意味着我可以很好地部署在 8.0 设备上。
这个类似的 8 岁问题表明当时没有这样的工具。想知道从那以后是否有任何变化。
解决方案
如果您使用的任何 API 可能存在问题,Xcode 10(和 Xcode 9)会警告您。例如,如果您的部署目标设置为 iOS 11,并且您尝试使用在 iOS 12 中添加的 API,Xcode 会警告您。
因此,将您的项目或目标的部署目标更新为您想要的任何内容,并让 Xcode 为您提供有关此类 API 甚至已弃用 API 的警告。
然后,您可以使用警告上的“修复”按钮if (@available ...)
围绕较新的 API 添加适当的检查,然后您可以添加所需的任何代码else
以支持较旧的 iOS 版本。
如果您觉得您遇到了太多此类 API 问题,请根据需要更改您的部署目标。
推荐阅读
- python - Python 函数的参数
- mongodb - MongoWriteException 未被 Java try catch 块捕获 - MongoDB Server 4.2 - Java Driver 3.12.0 - MongoDB 异常问题
- reactjs - 反应原生道具打字稿
- scala - Scala测试中的模拟不起作用,实际方法被调用
- google-apps-script - 摆脱整个专栏的负面迹象
- vb.net - 追加线和替换
- r - 使用 blogdown::hugo_install() 安装 hugo 时出错
- python - 如何从列表中的字典中提取信息?
- javascript - 如何使用 Vuetify 正确构建 Vue 组件库
- javascript - 如何在 IntelliJ 的事件日志窗口中显示完整的 WebStorm 信息?