Capgo 使用两个主要变量来管理您的 Capacitor 应用版本:
- 原生版本
- JavaScript 版本
所有版本选择均由 Capgo 在服务端决定。
版本管理系统
要管理版本 Capgo,请使用 SemVer 系统。阅读 SemVer 规范 或检查 Capgo 的更新兼容性,使用 Semver 测试器.
版本
在哪里找到要比较的版本(Capgo)
你可以通过在以下位置设置 version 键来覆盖此行为:
capacitor.config.json文件 文档见此处 所有平台的原生版本都将被忽略。
iOS
在 iOS 中,该变量在项目的这个位置设置 ios/App/App/Info.plist 对应键下CFBundleShortVersionString 或 ios/App/App.xcodeproj/project.pbxproj 对应键下 MARKETING_VERSION 如果 MARKETING_VERSION 已在你的项目中设置 Info.plist 文件。
Android
在 Android 中,该变量在项目的这个位置设置 android/app/build.gradle 对应键下 defaultConfig.versionName
JavaScript ( Capgo bundle 版本 )
在 JavaScript 中,这个 var 可以设置在 package.json 对应键下 version
否则你需要在 upload 命令中提供它。
默认行为
如果你没有更改任何设置,Capgo channel 的行为如下。
此行为将基于你设为默认的 channel。
当你的 Capacitor 应用全新安装时
当用户首次下载并打开你的 Ionic 应用时,它会连接 Capgo 服务器。
目前,可能会出现以下 4 种输出结果:
- 原生 bundle 版本 (1.2.3) 低于 Capgo bundle 版本 (1.2.4),Capgo 会向用户推送其 bundle。
- 原生 bundle 版本 (1.2.3) 等于 Capgo bundle 版本 (1.2.3),Capgo 会返回“无需更新”。
- 原生 bundle 版本 (1.2.4) 高于 Capgo bundle 版本 (1.2.3),Capgo 会返回“无需更新”。
- 原生 bundle 版本 (1.2.3) 的主版本号低于 Capgo bundle 版本 (2.2.3),Capgo 将发送“无需更新”。
其他设置
禁用原生环境下的自动降级
如果将此设置更改为 false,Capgo 将始终被视为版本的可信来源。 此时行为变为:
- 原生版本 (1.2.4) 高于 Capgo 版本 (1.2.3)
Capgo 向用户发送其版本。
禁用自动升级策略
您可以从几种策略中进行选择。了解更多详情 这里
JavaScript bundle 版本
JavaScript bundle 版本是您在执行时发送的版本 npx @capgo/cli@latest bundle upload --channel production
如果您未使用该选项 --bundle 1.2.3,Capgo 将从您的 package.json 文件(version 键)中获取 bundle 版本。
当您的 Ionic 应用从 Capgo 安装了一个版本后,该版本将用于比较:
- 如果其 JavaScript bundle 版本 (1.2.3) 低于 Capgo 的 bundle 版本 (1.2.4),Capgo 会将 bundle 发送给用户。
附带一些保护条件:
- 如果原生 bundle 版本高于 Capgo 的版本,
Disable auto downgrade under native则应用该条件。 - 如果原生 bundle 版本比 Capgo 版本低 MAJOR 级别,则
Disable auto upgrade above major则应用该条件。
应用商店更新
当你在 App Store 发布你的 Capacitor JS 应用时,过程很简单。
默认情况下,用户会从商店获取新版本,并移除应用中的所有本地更新。
如果你想改变这种行为,需要设置 resetWhenUpdate 了解更多 这里
此设置只能在应用端修改,无法像其他设置那样从云端修改。
其他设置
在上述行为之上,你还可以针对特定 deviceID 设置更具体的规则。
在 Capgo 中,你可以决定为每个 deviceID 覆盖默认行为。
您可以将一个 deviceID 关联到:
- 特定的 bundle 版本
- 特定的 channel
这将绕过上述所有设置。
在下方文章中了解更多。
继续阅读 Capgo 中的版本工作原理
如果你正在使用 Capgo 中的版本机制是如何工作的 要规划原生插件工作,请将其与 Capgo 插件目录 查看 Capgo 插件目录中的产品工作流, Capgo 提供的 Capacitor 插件 查看由 Capgo 提供的 Capacitor 插件中的实现细节, 添加或更新插件 查看添加或更新插件中的实现细节, Ionic Enterprise 插件替代方案 查看 Ionic Enterprise 插件替代方案中的产品工作流,以及 Capgo Native Build 查看 Capgo Native Builds 中的产品工作流。