react-native 导致热更新失败的问题之一

该文章是本人的一次项目总结,本人项目使用的是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虽然代码完全一致,版本号一致,但这就已经是两个包了,所以热更失败。

解决方法

  1. 正常情况,直接把IPA包提交App Store审核,然后把这个IPA包upload到pushy平台,用户从App Store下载该版本的包就可以正常更新。
  2. 测试时,最好结合Text File,把归档出的IPA包upload到pushy平台,然后把IPA包提交到iTunes connect,测试人员从Text File下载该版本的包安装,然后就可以正常热更了。
  3. 如果你的iTunes没有升级,还可以通过Xcode编译一个release模式的包到手机,然后用iTunes导出该IPA包,然后upload该IPA到pushy平台,一样能正常热更。

总结

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,273评论 4 61
  • 开发React Native (以下简称 RN)主要就是看中他的动态更新和跨平台以及代码复用,本文介绍RN的动态更...
    沐风雨木阅读 2,263评论 2 1
  • 诗意地栖居 诗意就是我们心中的花朵, 将诗词融入生活,心生诗情,每个年华便都可诗意地绽放。 2017便是我与学生一...
    张冬艳阅读 519评论 1 3
  • 接着上次继续解读: “快乐是我的 不是你给的 寂寞要自己负责” “亲爱的 我当时不懂得 选择是我的 不是你给的 明...
    空灵168阅读 490评论 0 0
  • 不早起, 你就无法享受 朝阳那—— 转瞬即逝的美。
    郭冬平阅读 205评论 0 0