The bridge-free host APIs use bundle-preparation terminology. This is a source-level breaking rename, not a change to download, activation, rollback, or crash-rescue behavior. No deprecated native alias is retained.
| Previous API | Replacement |
|---|---|
Android PushyNativeUpdate |
PushyRuntime |
Android PushyNativeUpdate.checkAndUpdate(context, callback) |
PushyRuntime.prepareBundle(context, callback) |
Objective-C checkAndUpdateWithCompletion: |
prepareBundleWithCompletion: |
Swift checkAndUpdate(completion:) |
prepareBundle(completion:) |
Harmony PushyFileJSBundleProvider.checkAndUpdate() |
PushyFileJSBundleProvider.prepareBundle() |
Android/Harmony NativeUpdateResult |
BundlePreparationResult |
Harmony NativeUpdateConfig |
PushyConfiguration |
iOS RCTPushyNativeUpdateCompletion |
RCTPushyBundlePreparationCompletion |
iOS RCTPushyNativeConfigurationCompletion |
RCTPushyConfigurationCompletion |
configure keeps its name. The Android package, iOS module and Harmony package
identities are unchanged. Update native imports, type annotations and call sites
together, including imports from Harmony's package entry point.
Persist configuration before normal launch bundle resolution when provisioning
without JavaScript. Wait for configuration to finish before continuing startup.
Call prepareBundle only after the host's real launch bundle resolution, and
reuse the initialized Harmony provider. Do not resolve the bundle a second time
just to call this API: resolution consumes first-load and rollback markers.
The call starts, joins or reuses the process's existing native round. It does not
reload the running React Native instance or display UI. A successful selection is
for the next launch; preparation can also download without selecting a bundle,
according to the existing afterDownload policy.
Config ownership. With nativeConfigSource: 'native' the host keeps the
configuration and JS never writes it. In the default 'javascript' mode the host
may provision the first launch with configure and JS takes over once it runs; the
last completed write wins. A write that is equivalent to the stored configuration
(same values after defaults are filled in, endpoint trailing / removed and
duplicates dropped, key order ignored) is not a change: it neither invalidates the
response cache nor cancels an in-flight round. Callback threading, cancellation,
request deduplication, configuration invalidation and rescue behavior are unchanged.
Result fields (status, reason, hash, activated) and existing status strings,
including noUpdate, remain unchanged. This avoids changing the data contract as
part of an identifier rename.
This change is limited to the bridge-free host API. The public JavaScript SDK,
TurboModule/legacy bridge method names, server paths such as /checkUpdate,
configuration values such as setNeedUpdate, and persisted keys are unchanged.
It is not a removal of every occurrence of update from the package or binary.
Rebuild and redistribute the native application to consume these native API names;
a JavaScript-only delivery cannot rename an installed native class or selector.
For Apple platforms, rerun pod install as part of the normal native upgrade.
For Harmony, rebuild/use the matching HAR instead of an older prebuilt artifact.
Do not restore old native aliases during migration. Historical release notes retain
the API names that existed in the versions they document.
原生宿主入口统一为 prepareBundle,Android 对外类改为 PushyRuntime,
结果类型改为 BundlePreparationResult,Harmony 配置类型改为
PushyConfiguration。iOS/Swift 的方法与完成回调类型(含 configure 的
RCTPushyConfigurationCompletion)同步改名,不保留旧名别名。
这是原生源码接口的破坏性重命名,不改变下载、下次启动选包、回滚或救援行为。
配置完成后,先走宿主正常的 bundle 解析流程,再调用 prepareBundle;
不要为调用接口再次解析 bundle,也不要新建另一个 Harmony provider。
nativeConfigSource: 'native' 时配置归宿主,JS 不写入;默认 'javascript'
模式下可由原生 configure 提供首启配置、JS 运行后接管,以最后完成的写入为准。
与已存配置等价的写入(补齐默认值、去掉服务地址末尾 / 并去重、忽略键序后相同)
不算变更,不会清空响应缓存,也不会作废进行中的轮次。
activated 仍表示已为下次启动选定,而不是当前实例已经重载。
JS SDK、JS 原生桥接接口、服务端路径、配置值、结果字段/状态值和持久化键不变。
需要重新构建并分发原生安装包,不能只通过 JS 热更新完成原生接口改名;
Apple 平台按正常升级流程重新运行 pod install,Harmony 使用重新构建的 HAR。