What is the minimum Deployments version we must set for iOS after April 2023 in Xcode 14.1 when submitting to app store?

huangapple go评论56阅读模式
英文:

What is the minimum Deployments version we must set for iOS after April 2023 in Xcode 14.1 when submitting to app store?

问题

By April 2023, Apple has mandated that we use Xcode 14.1 with iOS 16.1 SDK when building and submitting apps.

In Xcode, there are 2 fields:

  1. "iOS Deployment Target": iOS 16.1 ("Default" means 16.1 in Xcode 14.1?)

  2. "Minimum Deployments": What is the minimum iOS version we can set? Is it 11.0, or 10.3, or 9.0?

Update:

According to this, does this mean we must use iOS 16.1 as our "iOS Deployment Target" and 11.0 for "Minimum Deployments" in Xcode 14.1?

英文:

By April 2023, Apple has mandate us to use Xcode 14.1 with iOS 16.1 SDK when building and submitting app.

What is the minimum Deployments version we must set for iOS after April 2023 in Xcode 14.1 when submitting to app store?

In Xcode there're 2 fields:

  1. "iOS Deployment Target": iOS 16.1 ("Default" means 16.1? in xcode 14.1?)

  2. "Minimum Deployments": what is the minimum iOS version we can set is it 11.0? or 10.3 or 9.0?

What is the minimum Deployments version we must set for iOS after April 2023 in Xcode 14.1 when submitting to app store?
What is the minimum Deployments version we must set for iOS after April 2023 in Xcode 14.1 when submitting to app store?

Update:

According to this, does this mean we must use iOS 16.1 as our "iOS Deployment Target" and 11.0 for "Minimum Deployments" in Xcode 14.1:

What is the minimum Deployments version we must set for iOS after April 2023 in Xcode 14.1 when submitting to app store?

答案1

得分: 2

部署目标

这是您的第一个截图。

当您在左侧选项卡区域中选择了项目后,在主选项卡面板区域中,您可以看到针对iOS的部署目标(如果您还在其他平台部署,也会有macOS等等)。

这个部署目标是一个备用默认值,如果您在选择左侧选项卡区域中的目标时删除了最小部署值,它会出现。

最小部署版本

这是您的第二个截图。

在左侧面板中选择目标时看到的最小部署版本值控制着允许安装该应用程序的iOS(或macOS等)版本。

基本SDK

当苹果说您需要使用特定的SDK时,他们并不是在谈论部署的概念。他们谈论的是用于编译应用程序的SDK的版本。这被称为基本SDK。它随您使用的Xcode版本一起提供。如果苹果无法让开发人员使用最新的基本SDK,他们将无法将人们从旧的部署目标中剥离出来,因为每个SDK只覆盖特定范围的部署目标。

应用程序上传工具

Xcode与App Store提交之间存在微妙的交互。Xcode附带了用于将您的应用程序上传到App Store进行审核的脚本和工具。作为一个Web服务,App Store必须与使用的上传工具匹配,因为它们之间使用了私有API。有一个转折点,在此之前,旧的Xcode将无法上传到当前的App Store。

强制规定特定的Xcode版本意味着苹果可以随着时间的推移现代化上传工作流程,并清理捆绑格式和要求。

有时,如果您被困在特定的Xcode版本上,您可能可以使用最新Xcode的上传工具提交您的应用程序进行App Store审核。

你可以做什么

到了2023年4月的变更时,您将使用Xcode 14.1编译您的项目。这会解决基本SDK的要求。您可以根据您指定的表格选择您想要的部署目标。

“最佳实践”是去年的主要iOS版本。在该版本上进行测试,以及当前版本和最新的Beta版本。

在现实世界中,这取决于您的用户群体。

  • 一些应用程序更适合早期采用者,他们可以使用最新版本。
  • 大多数应用程序可以遵循最佳实践。
  • 一些应用程序受到某些行业监管机构的规定,要求用户通过移动应用程序访问应用(例如,您是一家银行,只通过移动应用程序提供功能,因此需要保持广泛覆盖,否则监管机构将抱怨您没有提供公平访问)。

如果我强制将部署目标设置得对于Xcode来说太旧会怎样?

对于苹果来说,问题在于如果您的应用无法在他们的新硬件上运行,这可能是部署目标太旧的结果。例如,2018年9月的指南规定该应用将在iPhone XS Max上运行。

将部署目标设置得太旧通常会导致编译时错误。

我没有听说过部署目标本身是App Store拒绝的原因,但如果有人能分享任何相关经验,我会很感兴趣。

指定一个部署目标过新(未发布的测试版本软件)是一个问题。即使您不使用任何未发布的功能,也会因此而被拒绝。

英文:

Deployment Target

This is your first screenshot.

When you have selected the project in the left tab area, then in the main tab panel area you can see Deployment Target for iOS (and also for macOS if you are deploying there also, etc. for the other platforms).

This deployment target is a fallback default value which appears if you delete the Minimum Deployments value when you have selected a target in the left tab area.

Minimum Deployments

This is your second screenshot.

The Minimum Deployments value seen when a target is selected in the left panel controls from which version of iOS (or macOS, etc.) are allowed to install the app.

Base SDK

When Apple say you need to use a particular SDK, they are not talking about the deployment concept. They are talking about which version of the SDK was used to compile the app. This is known as the Base SDK. It comes with the version of Xcode you are using. If Apple cannot get developers using the latest Base SDK, they cannot push people off old deployment targets as each SDK covers only a specific range of deployment targets.

Application Uploader

There is a subtle interaction between Xcode and App Store submission. Xcode comes with scripts and tools to upload your app to the App Store for review. The App Store, as a web service, must match the uploader being used due to the use of private APIs between them. There is a cut-over point where an old Xcode won't be able to upload to the current App Store.

Mandating a certain Xcode version means that Apple can modernise the upload workflow and clean up the bundle format and requirements over time.

Sometimes if you are stuck on a given Xcode version, you might be able to use the uploader for the latest Xcode to submit your app for App Store review.

What you can do

Come the changeover in April 2023, you would compile your project with Xcode 14.1. This sorts out the Base SDK requirement. You get to pick what deployment target you want based on the table you have specified.

The "best practice" is last year's major iOS version. Test on that, the current version, and the latest Beta version.

In the real world, it comes down to your user community.

  • Some apps are more for early adopters where the latest is ok.
  • Most apps can just follow the best practice.
  • Some apps come with some industry regulator that mandates user access to the app (e.g. you are a bank only delivering functionality via a mobile app so would need to maintain wide coverage otherwise the regulator would complain about you not giving fair access).

What if I force the deployment target to be too old for the Xcode?

The problem for Apple is if your app won't run on their new hardware and this may be a consequence of too old deployment target. For example September 2018 guidance mandated that the app would run on iPhone XS Max.

Setting (forcing) the deployment target to be too old usually results in compile time errors.

I haven't heard of the deployment target of itself being a reason for App Store rejection, but I would be interested if someone can share any anecdotes on that.

Specifying a deployment target too new (unreleased beta software versions) is an issue. You get rejected for that even if you don't use any of the unreleased functionality.

huangapple
  • 本文由 发表于 2023年2月8日 16:51:35
  • 转载请务必保留本文链接:https://go.coder-hub.com/75383283.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定