e-Título
需要广泛兼容各类公众设备的政务身份应用。
- Google Play 安装量
- 5490万
- 应用商店评分
- 4.8
版本定向
用户会根据自己的节奏从应用商店进行更新,因此您的应用可能会同时存在多个原生版本。Capgo 会检查每个 Bundle 的原生依赖项,根据版本规则拦截更新,并能将每个原生版本路由到其专属的 Channel。
14 天无限免费试用。无需信用卡 14 天退款保证。随时取消。
bundle 兼容性会将项目中的 Native 包与 channel 上当前生效的 bundle 进行对比。在 CI 中添加 --fail-on-incompatible,可阻止需要新 binary 的上传。
Native 兼容性文档将 channel 设为 metadata 策略,并使用 --auto-min-update-version 上传。Native 版本低于 bundle 最低版本的设备会跳过该 bundle,并保留当前 bundle。
版本定向文档--disable-auto-update major、minor 或 patch 可防止设备接收超出其 Native 版本线的 bundle。这些规则仅比较版本号,不会检查 Native code。
更新类型与版本拦截在每个 Native Build 的 Capacitor 配置中设置 defaultChannel(例如 v2 或 v3)。每条版本线都有各自的 bundles,旧版本线可以停留在最后一个可用的 bundle 上。
版本定向文档工作原理
通过 CI 配置,让 live update 通道和商店通道并行工作。以下所有命令均来自 Capgo CLI 文档。
build needed 会将你的 Native 包与 Channel 对比。需要商店发布时,它会输出 yes 并以 code 1 退出;当 live update 就足够时,则输出 no。
npx @capgo/cli@latest build needed com.example.app --channel production build needed 参考文档 只需设置一次。此后,每个 bundle 都会带一个最低 Native 版本,低于该版本的设备会跳过这个 bundle。
npx @capgo/cli@latest channel set production com.example.app \
--disable-auto-update metadata 版本定向文档 每次 upload 时保持 --auto-min-update-version 开启。若 bundle 需要当前 channel 不具备的 native code,--fail-on-incompatible 会停止任务。
npx @capgo/cli@latest bundle upload --channel production \
--auto-min-update-version \
--fail-on-incompatible Native 兼容性文档 当新的二进制文件发布时,在不使用 --fail-on-incompatible 的情况下 upload 其 bundle。Capgo 会提高版本下限,使旧版本 build 跳过该更新,后续检查则会针对新的 native packages 进行对比。
npx @capgo/cli@latest bundle upload --channel production \
--auto-min-update-version Native 与 OTA Channel 工作流 Appflow 迁移
Appflow 帮你把 Live Update 和原生版本对应起来。在 Capgo 中,用 channels 和版本规则也能得到同样的效果:
// capacitor.config.ts in your 2.x native builds
plugins: {
CapacitorUpdater: {
defaultChannel: 'v2',
},
},
# ship a fix to 2.x users only
npx @capgo/cli@latest bundle upload --channel v2 \
--auto-min-update-version
# 1.x devices stay on their channel's current bundle 您的 2.0 二进制文件新增了相机插件。使用 --auto-min-update-version 上传包含该插件的 bundle,1.x 设备将自动跳过该更新,直到用户安装 2.0。
Native 兼容性文档包含三个正在运行的原生版本的布局示例。
为 v3 推送新功能,为 v2 推送修复,v1 不再更新。运行 v1 的设备将保留最后一次可用的 Bundle。
使用 Capacitor 构建的应用
政务、医疗和天气预报类应用可能需要支持旧版 Android 和不同代际的设备。版本定向(Version targeting)能让每个 Native Build 都使用最新的兼容 Web Bundle,而无需让所有用户走同一条更新路径。
需要广泛兼容各类公众设备的政务身份应用。
健康类 App,旧版和新版原生壳可能需要不同的 Web Bundle。
天气类 App,设备能力和地图性能可能因版本而异。
开发者,Webincode
“能把特定 Device ID 加入指定分组,并只向这些分组推送更改,太救命了。”
CTO, 私有
“配置不到一天就完成了。基于 Channel 的发布让我能先在自己的设备上测试,再推给生产用户。”
drivolino GmbH 首席开发者
“Capgo Capacitor Updater 插件彻底改变了我们的更新发布方式。过去需要几天的工作,现在只需几分钟。”
常见问题
适合需要支持用户在不同时间更新商店 App 的团队。
他们会继续收到与自身原生版本兼容的 bundle。使用 metadata 策略时,最低原生版本高于用户版本的 bundle 会被跳过,用户会停留在当前 bundle 上。
版本定向文档不够。版本规则只比较版本号,所以 minor 或 patch 版本中带的原生改动仍会被发布。请使用 --fail-on-incompatible 或 --auto-min-update-version,它们会检查你的原生依赖包。
Native 兼容性文档运行 build needed,或将 bundle 的 releaseType 与 channel 对比。两者都比较原生依赖包的 metadata。它们看不到 ios/、android/ 或 capacitor.config 下的每一处改动,所以也要在 git 中为这些路径加校验。
在 CI 中选择 OTA 或 Native Build可以。为每条 Native 版本线配置一个 channel 并设置 defaultChannel,或者使用带 --auto-min-update-version 的 metadata 策略。Appflow 迁移指南里有完整的设置步骤。
Appflow 迁移指南把 channel 回退到历史记录中最后一个兼容的 bundle,或强制使用内置 bundle,然后发布 Native Build。notifyAppReady() 会回滚启动失败的 bundle,但它不能替代兼容的 Native code。
回滚文档在 14 天免费试用期内配置 metadata 策略和 CI 兼容性检查,无需信用卡。
试试 Capgo 版本定向:让 Live Update 精准匹配每个 Native App 版本。
来自 Martin 的人工支持
14 天无限免费试用。无需信用卡 14 天退款保证。随时取消。