管理不同的应用版本

编辑

了解面向开发者和面向用户的应用版本,以及 EAS Build 如何自动管理面向开发者的版本。


在本章中,我们将学习 EAS Build 如何自动管理 Android 和 iOS 的面向开发者的应用版本。在我们深入下两章的生产构建之前,了解这一点将是有用的。

观看:自动化应用版本代码
观看:自动化应用版本代码

理解面向开发者和面向用户的应用版本

应用版本由两个值组成:

  • 面向开发者的值:对于 Android,由 versionCode 表示,对于 iOS,由 buildNumber 表示。
  • 面向用户的值:由 version app.config.js 表示。

Google Play 商店和 Apple App Store 依赖面向开发者的值来识别每个唯一构建。例如,如果我们上传一个应用版本为 1.0.0 (1) 的应用(这是面向用户和面向开发者值的组合),我们不能提交另一个具有相同应用版本的构建到应用商店。提交具有重复应用版本号的构建会导致提交失败。

下面通过 app.config.js 中的 android.versionCodeios.buildNumber 展示手动管理面向开发者值的示例。我们不需要手动添加或管理这些值,因为 EAS Build 为我们自动化了这一过程

app.config.js
{ ios: { buildNumber: 1 %%placeholder-start%%... %%placeholder-end%% }, android: { versionCode: 1 } %%placeholder-start%%... %%placeholder-end%% }

注意: 面向用户的版本号 不由 EAS 处理。相反,我们在提交生产应用进行审核之前,在应用商店开发者门户中定义该版本。

使用 EAS Build 进行自动化应用版本管理

默认情况下,EAS Build 有助于自动化面向开发者的值。它利用 远程版本来源 在每次进行新的生产发布时自动递增面向开发者的值。

当我们用 eas init 命令初始化项目时,EAS CLI 自动在 eas.json 中添加了以下属性:

你可以在项目的 eas.json 中查看它们:

eas.json
{ "cli": { %%placeholder-start%%... %%placeholder-end%% "appVersionSource": "remote" }, "build": { "production": { "autoIncrement": true } } %%placeholder-start%%... %%placeholder-end%% }

当我们在接下来的两章中创建一个新的生产构建时,Android 的 versionCode 和 iOS 的 buildNumber 将自动递增。

将已发布应用的面向开发者版本同步到 EAS

如果你的应用已在应用商店中发布,则面向开发者的应用版本已设置。当将此应用迁移到使用 EAS Build 时,请按照以下步骤同步这些应用版本:

  • 在终端窗口中运行 eas build:version:set 命令:
Terminal
eas build:version:set
  • 在提示时选择平台(Android 或 iOS)。
  • 当提示 你是否想现在将应用版本源设置为远程? 时,选择 。这将在 eas.json 中将 cli.appVersionSource 设置为 remote
  • 当提示 你想用什么版本初始化? 时,输入你在应用商店中设置的最后版本号。

完成这些步骤后,应用版本将远程同步到 EAS Build。你可以在 eas.json 中将 build.production.autoIncrement 设置为 true。当你创建一个新的生产构建时,从现在开始 versionCodebuildNumber 将自动递增。

总结

第七章:管理不同的应用版本

我们成功探讨了应用版本差异,强调了独特应用版本对于防止商店拒绝的重要性,并在 eas.json 中启用了生产构建的自动版本更新。

在下一章中,了解如何为 Android 创建生产构建。

Next: 为 Android 创建生产构建