Capgo uses 2 main variables to manage versions in your Capacitor app:
- 原生版本
- JavaScript 版本
所有版本选择都由 Capgo 服务器端决定。
版本管理系统
要管理版本 Capgo,请使用 SemVer 系统。阅读 SemVer 规范 或检查 Capgo 更新与 Semver Tester 的兼容性 版本.
在哪里 __CAPGO_KEEP_0__ 找到要比较的版本
Capgo
您可以通过设置
capacitor.config.json文件 这里的文档 所有平台都会忽略原生版本.
IOS
在 IOS 中,变量会在您的项目中设置在这里 ios/App/App/Info.plist 下面的键CFBundleShortVersionString 或 ios/App/App.xcodeproj/project.pbxproj 如果 MARKETING_VERSION 在您的 MARKETING_VERSION 文件中设置了。 Info.plist IOS
Android
在 Android 中,变量在您的项目中设置在这里 android/app/build.gradle 在键下 defaultConfig.versionName
JavaScript ( Capgo 打包版本 )
在 JavaScript 中,变量可以在您的 package.json 在键下 version
否则,您需要在上传命令中提供它。
默认行为
这是如果您没有更改任何设置时Capgo通道将如何行为。
此行为将基于您设置为默认的唯一通道。
当您的Capacitor应用的新鲜安装
当用户首次下载并打开您的Ionic应用时,它会联系Capgo服务器。
目前有 4 种输出结果:
- 本地包版本(1.2.3)低于 Capgo 包版本(1.2.4),Capgo 将包发送给用户。
- 本地包版本(1.2.3)等于 Capgo 包版本(1.2.3),Capgo 发送“无需更新”。
- 本地包版本(1.2.4)高于 Capgo 包版本(1.2.3),Capgo 发送“无需更新”。
- 本地包版本(1.2.3)与 Capgo 包版本(2.2.3)相差主版本,Capgo 发送“无需更新”。
其他设置
在本地下禁用自动降级
如果您将此设置更改为 false,Capgo 将始终认为是可信的版本来源。 然后行为变为:
- 本地版本(1.2.4)高于 Capgo 版本(1.2.3)
Capgo 将版本发送给用户。
禁用自动升级策略
您可以选择以下几种策略。您可以了解更多关于它 这里
JavaScript 包版本
JavaScript 包版本是您在执行 npx @capgo/cli@latest bundle upload --channel production
如果您没有使用选项 --bundle 1.2.3, Capgo 将从您的 package.json 文件(在版本键中)。
在 Your Ionic 应用程序安装了一个版本后,Capgo,将与此版本进行比较:
- 他们的 JavaScript 包版本(1.2.3)低于 Capgo 包版本(1.2.4),Capgo 将发送其包给用户。
有某些条件限制:
- 如果原生包版本高于 Capgo 版本,则
Disable auto downgrade under native条件适用。 - 如果原生包版本的 MAJOR 版本低于 Capgo 版本,则
Disable auto upgrade above major当条件被应用时。
App Store更新
当您将Capacitor JS应用发布到App Store时,发生的事情很简单。
您的用户将从商店获取新版本,并在默认情况下将本地更新从应用中删除。
如果您想改变这种行为,请设置以下设置 resetWhenUpdate 了解更多 在这里
这只能在应用端进行更改,而不是像其他设置一样从云端进行更改。
其他设置
在所有这些行为之后,您可以在设备ID上添加特定的一个。
在Capgo中,您可以决定为每个设备ID覆盖行为。
您可以将一个设备ID链接到:
- 特定版本的捆绑包
- 特定频道
这将绕过上述所有设置。
在下面的文章中了解更多。
从 Capgo 中继续学习版本的工作原理。
如果您正在使用 版本的工作原理在 Capgo 中 为了计划原生插件的工作,连接它与 Capgo 插件目录 在 Capgo 插件目录中为产品工作流程 由 Capgo 提供的 Capacitor 插件 了解 Capacitor 插件由 Capgo 实现的详细信息 添加或更新插件 添加或更新插件的实现细节 Ionic 企业插件替代品 Ionic 企业插件替代品的产品工作流程 Capgo 原生构建 Capgo 原生构建的产品工作流程