部署目标是什么意思?


105

我假设这是一个非常简单的问题。有人可以告诉我部署目标是什么意思。如果选择IOS 10,是否意味着只有具有iOS 10的用户才能下载该应用程序。选择较低的部署目标是否不好?还建议继续在部署目标上运行,不建议在较低的部署目标上运行。



Answers:


148

假设您已将最低部署目标设置为iOS9。这意味着您的应用程序与iOS 9及更高版本的设备兼容。

该应用程序将无法运行在低于9.0的设备,但可以在任何的iOS版本上运行更多的比的iOS 9.0。


版本较低的用户至少仍可以在应用商店上看到该应用吗?
萨格里安

2
@Sagrian是的,他们可以,但是会向他们显示它与设备的操作系统不兼容
FreakyAli

部署目标和信息之间有什么区别?Xcode让我们在2个地方选择ios版本。
Daniel Springer

@DanielSpringer的设置Deployment Target最终将更改Info.plist。这是(可能)在Xcode 4.x之后添加的一种便捷方法
Naveed Abbas

@NaveedAbbas对不起,但我不知道该怎么回答。为什么要两个地方?每个都有什么用?
丹尼尔·斯普林格

19

部署目标确定您的应用在旧版iOS上运行的能力。

App with deployment target set to 10 will work on iOS version 10+ (10, 11, 12, 13 ...) but won't work on 9.x.

当发布新版本的iOS时,有些人不会费心将其设备更新到最新的iOS版本can't download your app from the App Store

如果您选择更高的部署目标(e.g 12.1),则即使拥有最新设备但拥有较旧iOS版本(iPhone X 11.0版)的用户也无法下载您的应用。相反,如果您选择最低的部署目标(e.g 6.0),则尝试使您的应用程序最大程度地向后兼容(因此,即使某个年龄的人没有更新过iOS,也可以下载您的应用程序)。

警告

许多(几乎所有)较新的框架和功能将无法在较低的iOS版本上正常运行(按预期方式运行),这增加了应用崩溃的可能性。

什么影响部署目标

以下是一些要求更高部署目标的因素。

1)使用最新的iOS SDK(单独)

2)使用最新的iOS SDK特定功能(约束,较新的XIB文件等)。

3)使用快速适应的外部库/框架(例如Facebook SDK,Firebase等)。

4)与在旧版Objective C中编写应用程序相比,更高的Swift版本(5.0)需要更高的部署目标!Needs citation

我们一直在使用Deploymate获得最大的后向支持。它主要帮助我们警告以下内容:

1)较新的API在较低的iOS版本上不起作用

2)使用不推荐使用的方法,这些方法不适用于更新的iOS版本。

这是您开始修复代码以使其可用于较低iOS版本以实现最大兼容性的时候。

注意: Xcode还提供了一些陷阱。Deploymate既不与我们联系,也不以任何形式向我们付款。您可以寻找其他替代品。


1

Deployment Target 是您的目标支持的iOS的最低版本。

这意味着:

  • 作为开发人员,您支持此版本,并且能够支持所有下一个兼容性
  • 广告用户,您应该至少具有此版本的iOS

在Xcode 11.5中进行更改

Build Settings -> iOS Deployment Target

-4

如果您不熟悉Xcode,建议您接受默认值,并将其视为对项目的约束。

随着更新的Xcode版本的到来,将不再支持较早的目标值。拥有广泛客户基础的公司必须以自己的方式解决此问题。

在我从事的大多数项目中,iOS版本都很重要,因为它决定了哪些设备可以运行您的应用程序。

例如,iOS 10本质上落后于所有iPod风格的连接器。


1
下注,但没有评论...没有帮助...我要补充,既然iOS 13已通过Xcode 11发布,那么旧项目上的许多默认目标都必须向上移动。
benc

推荐:“来自战es”的有用信息。不过,将其作为评论更合适。
timmi4sa

我宁愿做一个实用主义者,代表要低一些。对于Xcode来说,新手需要消化很多。
benc
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.