跳转到内容

更新类型

Capgo 支持多种类型的空中下载(OTA)更新。本页列出并解释了所有这些类型,以便您可以为应用选择正确的组合。

控制更新下载后何时应用。

类型描述使用场景
默认在后台下载,当用户将应用切换到后台或关闭应用时应用大多数应用;最小干扰
directUpdate: atInstall仅在全新安装或应用商店更新时立即应用新用户获得最新版本;现有用户使用默认流程
directUpdate: onLaunch在安装、商店更新或应用关闭后立即应用在新鲜度和会话稳定性之间取得平衡
directUpdate: always只要下载更新就立即应用(包括恢复时)关键修复、状态简单的应用

capacitor.config.ts 中配置:

plugins: {
CapacitorUpdater: {
directUpdate: false, // default
// or: 'atInstall' | 'onLaunch' | 'always'
}
}

在安装更新之前必须满足的条件。使用 setMultiDelay 组合它们(必须满足所有条件)。

条件描述示例
date等待到特定日期/时间之后与服务器端发布协调
background应用切换到后台后等待最小持续时间(毫秒)避免在快速应用切换期间应用
nativeVersion需要最低原生二进制版本阻止在不兼容的原生代码上更新
kill等待到下一次应用关闭事件仅在完全重启时应用
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setMultiDelay({
delayConditions: [
{ kind: 'date', value: '2023-06-01T00:00:00.000Z' },
{ kind: 'background', value: '60000' },
],
});

控制频道将自动交付哪些 semver 更新。通过频道上的 --disable-auto-update 设置。

策略阻止允许使用场景
none所有更新默认;完全自动更新
major0.0.0 → 1.0.0相同主版本(例如 1.x → 1.y)防止破坏性更改到达旧原生版本
minor0.0.0 → 1.1.0, 1.1.0 → 1.2.0相同次版本(例如 1.2.x → 1.2.y)主版本内更严格的控制
patch除补丁升级外的任何更改仅 0.0.311 → 0.0.314非常严格;仅补丁更新
metadata没有 min_update_version 的更新具有明确兼容性元数据的更新每个包的自定义兼容性规则
Terminal window
npx @capgo/cli channel set production --disable-auto-update major

包如何传输到设备。

类型描述何时使用
完整包下载整个 JS 包首次安装、大型更改或增量不可用时
增量(清单)仅下载更改的文件大多数更新;更快且带宽友好
Terminal window
# 完整包(默认)
npx @capgo/cli bundle upload --channel production
# 增量更新
npx @capgo/cli bundle upload --channel production --delta
类别类型
应用时机默认、atInstallonLaunchalways
延迟条件datebackgroundnativeVersionkill
版本阻止nonemajorminorpatchmetadata
交付完整包、增量(清单)