部署目标是啥意思?

Posted

技术标签:

【中文标题】部署目标是啥意思?【英文标题】:What does deployment target mean?部署目标是什么意思? 【发布时间】:2017-05-07 19:10:07 【问题描述】:

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

【问题讨论】:

看到这个问题:***.com/questions/18568572/… What's the meaning of Base SDK, iOS deployment target, Target, and Project in xcode的可能重复 【参考方案1】:

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

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

【讨论】:

低版本用户至少在应用商店还能看到应用吗? @Sagrian 是的,他们可以,但它会告诉他们它与他们的设备操作系统不兼容 部署目标和信息有什么区别? Xcode 让我们在 2 个地方选择一个 ios 版本。 @DanielSpringer Deployment Target 中的设置最终会更改 Info.plist。这是在 Xcode 4.x 之后(可能)添加的一种便捷方式 @NaveedAbbas 很抱歉,但我不明白这是怎么回答的。为什么是两个地方?各自的用途是什么?【参考方案2】:

如果您是 Xcode 新手,我建议您接受默认设置,并将其视为对您项目的约束。

随着更新的 Xcode 版本的出现,对旧目标值的支持将被删除。拥有广泛客户群的公司必须以自己的方式处理这个问题。

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

例如,iOS 10 基本上抛弃了所有 iPod 风格的连接器。

【讨论】:

赞成:“来自战壕”的有用信息。更适合作为评论,但尽管如此。 我宁愿做一个声望稍低的实用主义者。刚接触 Xcode 需要消化很多东西。【参考方案3】:

部署目标决定了您的应用在旧 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) 更高的 Swift 版本 (5.0) 需要更高的部署目标,而不是在旧版 Objective C 中编写应用程序)!Needs citation

解决方案

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

1) 不适用于较低 iOS 版本的较新 API

2) 使用不适用于较新 iOS 版本的已弃用方法。

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

注意: Xcode 还告知了几个陷阱。 Deploymate 既不与我们有关联,也不以任何形式向我们付款。您可以寻找其他替代品。

【讨论】:

【参考方案4】:

iOS 部署目标(IPHONEOS_DEPLOYMENT_TARGET)

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

意思是:

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

在 Xcode 11.5 中更改它

Build Settings -> iOS Deployment Target
//.pbxproj
IPHONEOS_DEPLOYMENT_TARGET

【讨论】:

以上是关于部署目标是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

部署时“发布”配置是啥意思?

Visual Studio“任何 CPU”目标是啥意思?

$@ 在Linux Makefile中是啥意思

Scikit 的线性回归对象中的目标是啥意思?

数据管理员DBA是啥意思?

报头是啥意思?