RN 热更新靠谱调研

245 阅读3分钟

RN 热更新的优势:

React Native(RN)热更新的必要性主要体现在以下几个方面:

1. 快速修复和迭代

在应用发布后,可能会发现一些小的bug或需要进行细微的调整。通过热更新,可以快速将这些修复和改动推送给用户,而无需等待应用商店的审核流程,从而提高了修复和迭代的效率。

2. 提高用户体验

热更新允许在不重新安装应用的情况下,更新JavaScript代码和资源。这意味着用户可以在不感知的情况下获得最新的功能和修复,提升了整体的用户体验。

3. 降低发布成本

每次通过应用商店发布新版本都需要打包、签名和提交审核,这个过程既耗时又可能涉及额外的资源投入。热更新可以减少这种频繁发布的需求,降低了发布的成本。

4. 应对平台审核限制

在某些平台上,应用的审核周期较长,可能会影响到应用的及时更新。热更新提供了一种绕过这种限制的方式,使得开发者可以更灵活地控制应用的更新周期。

5. 支持A/B测试和灰度发布

热更新机制可以支持A/B测试和灰度发布,使得开发者可以在小范围内测试新功能或改动,收集反馈后再决定是否全面推送,从而降低了更新带来的风险。

综上所述,React Native的热更新功能为开发者提供了更高效、灵活的应用更新方式,特别适用于需要频繁更新和快速迭代的应用场景。

主流方案技术对比

概览

方案核心原理适用场景风险提示git仓库
CodePush微软云服务增量更新国外网络国内网络稳定性差,不继续更新github.com/microsoft/r…github.com/microsoft/c…
Pushy中文社区维护的增量更新方案国内阿里云节点只给二进制文件做远程部署github.com/reactnative…
expoexpo-update国外网络需要升级底层脚手架github.com/expo/custom…
react-native-ota-hot-updatezip 安装支持自定义布置服务需要配置服务github.com/vantuan8829…

详细分析

Microsoft:

官方只维护了 sdk :github.com/microsoft/r…

需要配合服务:lisong/code-push-server

整体因为宣布 Visual Studio App Center 将于 2025 年 3 月 31 日停用。您可以在 aka.ms/appcenter/r… 上了解有关支持时间表和替代方案的更多信息。

对应的替代方案:

sdk:github.com/appzung/rea…,替代方案,也可以继续使用github.com/microsoft/r…

服务:github.com/microsoft/c…

Pushy:

优点:支持鸿蒙

sdk: github.com/reactnative…

服务:私有部署只提供二进制文件,不提供代码

但是可以帮助远程部署

Expo Updates

github.com/expo/custom…

逐步升级的文档:

docs.expo.dev/bare/overvi…

react-native-ota-hot-update

改动小,本身类似 Expo,但是使用的是旧的 rn-cli 框架。当前更新的效率比较高,但并不是很稳定, 自己在 andriod 端的 example 有问题。 github.com/vantuan8829…

总结

如果是使用 Expo 的,只需要再加服务端的内容就可以了,所以首推这个方案。 如果是国内用户,为了更轻松的使用到热更新的能力,可以采用 pushy 的方案。