确定最低的iOS / macOS部署目标的最佳方法

时间:2018-10-07 04:09:54

标签: ios objective-c xcode macos target

在给定iOS或macOS代码库的情况下,是否可以确定我可以安全地为项目设置的最低值IPHONEOS_DEPLOYMENT_TARGETMACOSX_DEPLOYMENT_TARGET,以便捕获最大数量的潜在受支持设备?我不想随便说“ iOS 11”之类的东西,因为那样会把旧操作系统的用户拒之门外。另一方面,每个API调用都需要特定版本的操作系统,而且我没有记下我进行的每个API调用,也不想查看所有这些API。

例如,也许我的应用程序调用的数千个API中有一个需要iOS 10,并且在iOS 9上将失败。有没有办法告诉我?只需将IPHONEOS_DEPLOYMENT_TARGET设置为8.0似乎可以编译正常(无警告),但这并不一定意味着我可以在8.0设备上进行部署。

This similar 8-year-old question建议当时没有这样的工具。想知道此后是否有任何变化。

1 个答案:

答案 0 :(得分:1)

如果您正在使用任何可能会出现问题的API,

Xcode 10(和Xcode 9)会警告您。例如,如果您的“部署目标”设置为iOS 11,并且您尝试使用iOS 12中添加的API,则Xcode会警告您。

因此,将项目或目标的“部署目标”更新为所需的任何内容,并让Xcode向您发出有关此类API甚至不推荐使用的API的警告。

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

如果您觉得这样的API问题太多,请根据需要更改部署目标。