大家好,分享一下我正在做的项目:**Pakta ,一个面向 React Native 的热更新平台。**
它包含客户端 SDK 、CLI 发布工具和 Web 管理后台,覆盖 Android 、iOS 、HarmonyOS ,也支持集成原生模块的 Expo 开发构建和生产构建。
做这个项目,主要是想把热更新从“上传一个包”变成一套完整、可控的发布流程。
当应用有多个分发渠道、线上同时存在几个原生版本时,一次更新往往需要回答这些问题:
+ 这次修复应该发给哪些渠道、哪些原生版本?
+ 能不能先在一个渠道小范围验证,其他渠道保持不动?
+ 同一份更新内容,能不能复用,分别控制发布比例?
+ 更新出问题后,怎样停止继续下发,或者回滚?
Pakta 围绕这些问题,把**更新内容**和**投放策略**分开管理。
**同一个热更新包,可以有不同的发布节奏**
举个例子,同一份更新可以这样投放:
| 渠道 | 原生版本 | 发布比例 |
| --- | --- | --- |
| 华为 | 1.0.0 | 100% |
| 华为 | 2.0.0 | 10% |
| 小米 | 2.0.0 | 30% |
热更新包保存一份,每个“渠道 × 原生版本”单独维护发布状态和灰度比例。
这样就能先验证一部分目标,观察后逐步扩大范围,不用为了不同渠道反复上传同一份内容。前提是这份更新与目标原生版本兼容。
渠道身份来自原生包元数据,CLI 会读取并校验,减少发布时手工选择错误的机会。
**目前提供的主要能力**
+ **多渠道管理**:按渠道和原生版本分别管理投放。
+ **灰度发布**:支持独立比例、暂停、转全量和历史包回滚。
+ **差分更新**:后台异步生成补丁;补丁未就绪、生成失败或收益不足时,使用全量包。
+ **更新生效策略**:支持静默下载后下次启动生效、下载后立即生效,以及提示用户更新。
+ **异常恢复**:提供健康检查、崩溃回滚和原生冷启动修复路径。
+ **CLI / CI 接入**:支持原生基线登记、热更新发布和多目标投放。
+ **发布观测**:查看更新遥测、补丁任务状态及操作记录,并支持关联 Sentry / Crashlytics 。
+ **全球 CDN 加速**:热更新资源通过全球 CDN 分发,让不同地区的设备就近下载,改善跨地区更新体验。
项目入口:
+ Pakta 官网
+ 接入文档
+ SDK
+ CLI
欢迎做 React Native 、Expo 或 HarmonyOS 的朋友试用,也想听听大家实际管理多渠道热更新时,最容易出问题的是哪个环节。