android rn热更新闪退,react-native 导致热更新失败的问题之一

本文分享了一次热更新导致应用闪退的问题及解决过程。关键在于确保热更新平台的基础包与手机安装的应用版本一致。提供了多种测试和部署方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该文章是本人的一次项目总结,本人项目使用的是react-native-pushy。假设你已经有一个RN项目,且成功配置了pushy服务,接入配置好了热更代码,如果没有请参照react-native-pushy GitHub上的文档进行配置。

问题

最近APP改版后,打了一个新的热更包,然后用老版本APP去热更会出现闪退,debug调试报错如下Unable to execute JS call: __fbBatchedBridge is undefined。

错误操作流程

xcode修改version为1.0.0,然后打一个release模式的包到手机,然后xcode归档出一个1.0.0的ipa包出来,推到热更平台上,然后用这个底包去热更,然后就闪退了。

原因

通过多次复现问题,使用debug模式打印出报错,然后查看GitHub文档,找出原因是我操作流程的问题。热更必须保证pushy平台上的底包和手机上安装的app是同一个。然而我使用Xcode往手机安装的包,简称A,与用Xcode归档出来的包,简称B。A与B虽然代码完全一致,版本号一致,但这就已经是两个包了,所以热更失败。

解决方法

正常情况,直接把IPA包提交App Store审核,然后把这个IPA包upload到pushy平台,用户从App Store下载该版本的包就可以正常更新。

测试时,最好结合Text File,把归档出的IPA包upload到pushy平台,然后把IPA包提交到iTunes connect,测试人员从Text File下载该版本的包安装,然后就可以正常热更了。

如果你的iTunes没有升级,还可以通过Xcode编译一个release模式的包到手机,然后用iTunes导出该IPA包,然后upload该IPA到pushy平台,一样能正常热更。

总结

反正就是保证pushy平台的底包与手机上安装的app一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值