爱意满满的作品展示区。
kkuragoku

[开源] 做了一个 React Native 热更新平台 Pakta,支持多渠道管理、独立灰度和差分更新,覆盖 Android、iOS、HarmonyOS

  •  1
     
  •   kkuragoku ·
    PRO
    · 11h 56m ago · 522 views

    大家好,分享一下我正在做的项目: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 分发,让不同地区的设备就近下载,改善跨地区更新体验。

    项目入口:

    欢迎做 React Native 、Expo 或 HarmonyOS 的朋友试用,也想听听大家实际管理多渠道热更新时,最容易出问题的是哪个环节。

    5 replies    2026-09-15 15:04:16 +08:00
    songyoucai
        1
    songyoucai  
       11h 48m ago
    有需求 先 start
    vnues
        2
    vnues  
       11h 46m ago
    这块有监控日志不,然后经过生产验证了不
    kkuragoku
        3
    kkuragoku  
    OP
    PRO
       11h 30m ago
    @vnues 目前已有趋势、版本健康度、包体分布、设备和事件明细监控链路,但还不是统一日志平台。可以搭配 Sentry/Crashlytics 使用,目前还没做到那,当然也可以给提个 issues ,详细说一下,后边我鞭策 ai 开发开发 hhh ,我用 expo 开发的两应用已经用上了并上架 AppStore 了,使用没什么问题
    kongkx
        4
    kongkx  
       9h 46m ago via Android
    HarmonyOS 支持最新的 react-native 版本吗?
    kkuragoku
        5
    kkuragoku  
    OP
    PRO
       6h 43m ago
    @kongkx 目前 HarmonyOS 通过 RNOH 适配 React Native ,并不是自动跟随 RN 最新版本。当前项目已验证的是 RN 0.72.x ,暂不能承诺支持 RN 0.87 。若要升级到最新 RN ,需要先确认对应 RNOH 版本,再完成依赖适配、真机 release 构建和 E2E 验证。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3139 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:47 · PVG 21:47 · LAX 06:47 · JFK 09:47
    ♥ Do have faith in what you're doing.