Repository navigation
v10.59.1
English
Native internals cleanup
No API or behavior changes. The JavaScript SDK, the JS bridge, the native host APIs (configure / prepareBundle), server requests and persisted state are unchanged.
- Android: native methods are now registered at library load time, so the native library exports a single entry point instead of one symbol per method. The library file is renamed from
librnupdate.sotolibrnpushy.so. If yourpackagingOptions/jniLibsrules namelibrnupdate.soexplicitly, update them. - iOS: the shared C/C++ core is built as its own
Coresubspec with hidden symbol visibility, so a dynamic-framework integration no longer exports the core's internal symbols. Runpod installas part of the normal native upgrade. - All platforms: internal class, method and log names were made consistent, and built-in service addresses and protocol constants are no longer stored as plain strings in the binary.
- Rebuild the native app to pick up these changes; a JS-only update is not needed and has no effect on them.
Android: Expo detection in pnpm workspaces
- The declared
expoversion is no longer misread from pnpm protocol specs (catalog:,workspace:,link:,file:, git URLs). Previously a catalog named likecatalog:v2was read as Expo SDK 2 and the Expo module was silently disabled.npm:aliases are parsed from the last@. - The Node fallback for resolving the Expo version works again on Gradle 9 (it used
Project.exec, which Gradle 9 removed, and silently returned nothing).
中文
原生内部整理
没有接口或行为变化。JS SDK、JS 桥接、原生宿主接口(configure / prepareBundle)、服务端请求和持久化状态均不变。
- Android:native 方法改为在库加载时注册,原生库对外只导出一个入口,不再每个方法一个符号。库文件由
librnupdate.so改名为librnpushy.so;如果你的packagingOptions/jniLibs配置里写了librnupdate.so,请同步修改。 - iOS:共用的 C/C++ 核心拆为独立的
Coresubspec,并隐藏符号可见性,以动态 framework 集成时不再导出核心内部符号。按正常原生升级流程重新运行pod install。 - 三端:内部类名、方法名和日志措辞统一;内置服务地址和协议常量不再以明文字符串存放在二进制中。
- 需要重新构建原生应用才会生效;这些改动与 JS 热更新无关。
Android:pnpm workspace 下的 Expo 检测
- 解析
expo声明版本时跳过 pnpm 协议写法(catalog:、workspace:、link:、file:、git 地址)。此前名为catalog:v2之类的 catalog 会被误读成 Expo SDK 2,导致 Expo 模块被静默禁用。npm:别名按最后一个@之后的部分解析。 - 用 Node 兜底解析 Expo 版本的逻辑在 Gradle 9 上恢复可用(原来用的
Project.exec在 Gradle 9 中已移除,兜底会静默返回空)。