向CodePush推送含不支持的React-Native组件的更新会出现什么问题?
CodePush 常见问题解答
1. CodePush 是否会接收包含不支持组件的更新包?
CodePush 服务本身不会校验更新包内的组件是否在支持范围内,只要你打包生成的 JS bundle 及配套资源符合基础打包规范,就可以正常上传到 CodePush 后台完成推送。哪怕包内包含官方不支持的组件,只要打包过程没有报错,都能成功提交。
2. 推送包含不支持组件的更新会有什么影响?
影响程度和你用的不支持组件类型有关:
- 如果用到的不支持组件需要新增原生依赖(比如需要修改 Android/iOS 原生工程代码、配置项),用户安装更新后大概率会出现运行时报错、闪退,严重情况下会导致应用完全无法打开。
- 如果用到的是纯 JS 实现的不支持组件,一般不会触发更新失败,但大概率会出现组件表现异常、对应功能无法正常使用的问题。
3. 推送 CodePush 更新前需要做哪些预防措施?
- 每次打包热更包前,先核对本次迭代的依赖变更清单,确认没有新增需要修改原生工程的第三方依赖。所有涉及原生层改动的需求必须走应用商店发版,严禁通过 CodePush 推送。
- 本地打包后先打 release 包在测试设备上跑完全量功能,确认没有组件报错、闪退问题后再提交到 CodePush 后台。
- 首次推送优先推到灰度测试环境,仅开放给小范围测试用户验证,确认所有功能运行正常、无异常上报后再推全量环境。
- 所有推送的热更包都要留存对应版本的源码备份,配置好一键回滚规则,万一出现线上问题可以第一时间回滚到上一个稳定版本,避免影响大面积用户。
- 不确定某类组件是否支持热更时,单独做小范围测试验证后再正式使用,不要直接推全量。
内容的提问来源于stack exchange,提问作者ridvanaltun
相关产品推荐
相关产品推荐

