Releases: reactnativecn/react-native-update-cli
Release list
v2.21.2
feat(diff): record copiesCrc for every copied entry in package diffs (pdiff). Same-path copies now carry a content checksum so clients can verify path-matched files before copying; backward-compatible (existing clients only consult copiesCrc on path-lookup miss). Part of BUNDLEHASH_MIGRATION §4.2.1 runtime guarantee.
v2.21.1
修复
发布流程
- 发布版本号改为以 GitHub Release tag 为唯一来源,发布前硬校验 package.json 版本与 tag 一致,并用
npm pack --dry-run验证包内容(修复 v2.21.0 发布失败) - Node 18 验证扩展为同时加载 CLI 与编程入口(exports/diff)
控制面
- 编程接口
publish()现在正确转发appId/config,不再静默回退到 update.json 中的应用 minPackageVersion与maxPackageVersion同时提供时取交集(此前上界被忽略);混用不同的包选择器(packageId / packageVersion / packageVersionRange / min+max)现在显式报错- 登录 token 文件以 0600 权限写入(已存在文件同样收紧),并在登录时即加入 .gitignore
打包与差分
- 原生包内 bundle 查找改为锚定精确匹配,
.map/.backup等条目不再可能顶替真实 bundle 的 bundleHash - bundletool 仅在 PATH 中不存在(ENOENT)时才回退
npx node-bundletool,其余错误原样报告 - AAB 上传的中间 APK 改用私有 mkdtemp 临时目录,避免共享 /tmp 的可预测路径
- diff 产物 ZIP 与 universal.apk 提取补全读写流错误传播(只读目录 / 磁盘满不再挂起)
- 流式 diff 路径下 HBC 变换补丁仅在小于基线补丁时才被采用,与内存路径约束一致
v2.21.0 因发布流水线版本号问题未能上 npm,本版本包含其全部内容。
v2.21.0
v2.20.4
parseAab now reports bundleHash, hashing the base-module bundle (base/assets/index.android.bundle) — the same bytes the universal APK carries, so it matches what uploadAab registers. parseIpa/parseApk/parseApp already reported it since 2.20.3.
v2.20.3
Register bundleHash when uploading native packages: the sha256 of the JS bundle embedded in the ipa/apk/app is now computed at upload and sent with package/create, so the server can decide pdiff applicability by content identity instead of the buildTime heuristic. AABs are covered via the extractApk path. No behavior change against older servers (unknown fields are ignored).
v2.20.2
v2.20.1
Stream large bundle entries through files instead of retaining whole-buffer copies, skip redundant round-trip verification for trusted native diff implementations, and expose per-phase timings. Patch contents and compression settings are unchanged.
v2.20.0
What's Changed
- Upload a slim native package containing only the React Native bundle and OTA resources instead of the full IPA, APK, or Harmony APP.
- Share native-package entry rules between extraction and diff generation to keep baseline matching consistent.
- Preserve IPA/APK paths and nested Harmony HAP structure while excluding native binaries.
- Clean temporary packages after both successful and failed uploads.
Full Changelog: v2.19.0...v2.20.0
v2.19.0
自托管节点(rnu-node)支持 / Self-hosted node support
-
/upload请求携带appId,服务端据此路由绑定了自托管节点的账户 -
支持
{method:'PUT'}上传指令:s3 预签名直传,文件字节直达你自己的对象存储,不经过任何服务器中转 -
绑定节点的账户要求本版本及以上(服务端强制,保证数据托管承诺)
-
/uploadnow carriesappIdso the server can route uploads for node-bound accounts -
Presigned PUT upload instructions: bytes go straight to your own S3-compatible bucket
-
Node-bound accounts require this version or newer (enforced server-side)
v2.18.0
What's Changed
bundleStreamThreshold现优先使用 node-hdiffpatch ≥ 2.0 的diffSingleStream:大 bundle 流式生成、产物仍为 single 格式(存量客户端可直接应用),baseline 轨道也可安全启用;仅在 1.x 环境回退 HDIFF13(v2 轨道专用)。
Full Changelog: v2.17.0...v2.18.0