Skip to content

Releases: reactnativecn/react-native-update-cli

v2.22.5

Choose a tag to compare

@sunnylqm sunnylqm released this 24 Aug 01:33
88598a9

Surface the real hermesc error when a Hermes base compile fails: diagnostics are now filtered so errors are no longer buried under minified-bundle warning echoes, and the full compiler output is written to /hermes-base-error.log.

v2.22.4

Choose a tag to compare

@github-actions github-actions released this 23 Aug 07:44
ef375f3

Fix Hermes base equivalence verification for UIntSwitchImm jump-table offsets. Tighten StringSwitchImm/UIntSwitchImm normalization so semantic operands remain checked, with regression coverage for IDs, labels, ranges, and malformed switch shapes.

v2.22.3

Choose a tag to compare

@sunnylqm sunnylqm released this 22 Aug 02:43
f372289

Fix: publish no longer sends JSON null for the Hermes chain metadata (baseVersionId / baseHash / bytecodeVersion) when no base was used — servers rejected that with "Expected baseHash string". Fields are now omitted, which every server version accepts.

v2.22.2

Choose a tag to compare

@sunnylqm sunnylqm released this 22 Aug 02:24

Fix Hermes delta-base discovery for apps that have an uploaded native package but no published hot-update version. The CLI now downloads and extracts APK, IPA, or Harmony APP base artifacts returned by the server.

v2.22.1

Choose a tag to compare

@sunnylqm sunnylqm released this 21 Aug 16:25
17ca6a1

Fix: the Hermes delta-mode verification (--verifyHermesBase) reported false mismatches when the base came from a different lineage (wider GetById/LoadConstString variants, moved switch jump tables) and needlessly fell back to a plain compile. No behavior change otherwise.

v2.22.0

Choose a tag to compare

@sunnylqm sunnylqm released this 21 Aug 15:52
2d6f597

Hermes delta mode (-base-bytecode)

  • bundle now compiles Hermes bundles against the app's previous HBC (--hermesBase auto, default), keeping Hermes string IDs stable across versions: hot-update patches shrink 5–30×. Base comes from the server (GET /app/:id/hermesBase), is verified by sha256 and cached under .pushy/cache/<sha256> (500 MB / 20 files, --cacheMaxMb, PUSHY_CACHE_DIR).
  • --hermesBase none disables it; --hermesBase <file.hbc|.ppk|.apk|.ipa> uses a local artifact (e.g. the store build) as base.
  • --verifyHermesBase (default on) compares the delta build's disassembly with a plain compile and silently falls back on any mismatch — the feature can never block a release.
  • hermesc always runs with -output-source-map: debug info is stripped from the bytecode (15–40% smaller, same as RN release builds); the Hermes .map stays in the intermediate directory.
  • publish / uploadApk / uploadIpa / uploadApp report bundleHash, bytecodeVersion, baseVersionId, baseHash and seed the local cache.
  • New command: pushy cache [clean].

v2.21.2

Choose a tag to compare

@sunnylqm sunnylqm released this 03 Aug 09:46
c5b972e

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

Choose a tag to compare

@sunnylqm sunnylqm released this 02 Aug 15:03
e5e43a2

修复

发布流程

  • 发布版本号改为以 GitHub Release tag 为唯一来源,发布前硬校验 package.json 版本与 tag 一致,并用 npm pack --dry-run 验证包内容(修复 v2.21.0 发布失败)
  • Node 18 验证扩展为同时加载 CLI 与编程入口(exports/diff)

控制面

  • 编程接口 publish() 现在正确转发 appId / config,不再静默回退到 update.json 中的应用
  • minPackageVersionmaxPackageVersion 同时提供时取交集(此前上界被忽略);混用不同的包选择器(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

Choose a tag to compare

@sunnylqm sunnylqm released this 31 Jul 10:52
bddb282

Full Changelog: v2.20.3...v2.21.0

v2.20.4

Choose a tag to compare

@sunnylqm sunnylqm released this 31 Jul 10:48
v2.20.4
bddb282

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.