假设您将最小部署目标设置为iOS 9。
这意味着您的应用程序与iOS 9及以上设备兼容。
该应用程序无法在低于 9.0 的设备上运行,但可以在任何大于iOS 9.0的版本上运行。
部署目标决定了您的应用程序在旧版iOS上运行的能力。
部署目标设置为10的应用程序将可在iOS 10+(10、11、12、13等)上运行,但无法在9.x上运行。
当发布新版本的iOS时,有些人不会更新他们的设备到最新的iOS版本,因此他们无法从App Store下载您的应用程序。
示例
如果您选择更高的部署目标(例如12.1)
,您的应用程序将无法下载给即使拥有最新设备但运行较旧iOS版本的人(带有11.0的iPhone X)。 相反,如果您选择最低可能的部署目标(例如6.0)
,则尝试使您的应用程序最大程度地向后兼容(因此即使有人已经很久没有更新他们的iOS也可以下载您的应用程序)。
注意事项
许多(几乎所有)较新的框架和功能无法在较低版本的iOS上正确运行(表现如预期),这增加了应用程序崩溃的可能性。
影响部署目标的因素
以下是几个需要更高部署目标的因素:
1)仅使用最新的iOS SDK
2)使用最新的iOS SDK特定功能(约束、较新的XIB文件等)。
3)使用快速适应的外部库/框架(例如Facebook SDK、Firebase等)。
4) 使用更高版本的Swift(5.0)需要更高的部署目标,而使用传统的Objective C则不需要。 !需要引用来源
。
解决方案
我们一直在使用Deploymate来最大限度地支持向后兼容。它主要帮助我们警告以下内容:
1)较旧iOS版本上无法工作的新API
2)在较新iOS版本上无法工作的弃用方法。
这时,您需要修复代码以使其适用于较低的iOS版本,以实现最大兼容性。
注意: Xcode也会指出几个问题。Deploymate与我们没有任何关联或以任何方式支付我们。您可以寻找其他替代方案。
iOS部署目标(IPHONEOS_DEPLOYMENT_TARGET)
部署目标
是您的目标支持的iOS的最低版本。
这意味着:
在Xcode 11.5中更改它:
Build Settings -> iOS Deployment Target
//.pbxproj
IPHONEOS_DEPLOYMENT_TARGET