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

理解面向开发者和面向用户的应用版本
应用版本由两个值组成:
- 面向开发者的值:对于 Android,由
versionCode表示,对于 iOS,由buildNumber表示。 - 面向用户的值:由
versionapp.config.js 表示。
Google Play 商店和 Apple App Store 依赖面向开发者的值来识别每个唯一构建。例如,如果我们上传一个应用版本为 1.0.0 (1) 的应用(这是面向用户和面向开发者值的组合),我们不能提交另一个具有相同应用版本的构建到应用商店。提交具有重复应用版本号的构建会导致提交失败。
下面通过 app.config.js 中的 android.versionCode 和 ios.buildNumber 展示手动管理面向开发者值的示例。我们不需要手动添加或管理这些值,因为 EAS Build 为我们自动化了这一过程。
{ 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 中添加了以下属性:
cli.appVersionSource设置为remotebuild.production.autoIncrement设置为true
你可以在项目的 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命令:
- eas build:version:set- 在提示时选择平台(Android 或 iOS)。
- 当提示 你是否想现在将应用版本源设置为远程? 时,选择 是。这将在 eas.json 中将
cli.appVersionSource设置为remote。 - 当提示 你想用什么版本初始化? 时,输入你在应用商店中设置的最后版本号。
完成这些步骤后,应用版本将远程同步到 EAS Build。你可以在 eas.json 中将 build.production.autoIncrement 设置为 true。当你创建一个新的生产构建时,从现在开始 versionCode 和 buildNumber 将自动递增。
总结
第七章:管理不同的应用版本
我们成功探讨了应用版本差异,强调了独特应用版本对于防止商店拒绝的重要性,并在 eas.json 中启用了生产构建的自动版本更新。
在下一章中,了解如何为 Android 创建生产构建。