关于uni-app:uniapp热更新后不匹配的版本可能造成应用异常的原因和解决方法

60次阅读

共计 837 个字符,预计需要花费 3 分钟才能阅读完成。

问题的呈现

线上紧急修复 bug 的时候,常常应用热更新,最近一次热更新后遇到了问题:更新完后下一次关上 app 时,提醒了:

“本利用应用 HBuilder3.2.16 编译或对应的 cli 版本编译,而手机端 SKD 版本是 3.2.9。不匹配的版本可能造成利用异样。”

呈现这一提醒的起因是,上一次版本公布的 app 曾经大半个月了,期间我降级了 HBuilder 的利用版本,在打包 wgt 文件时,应用了 3.2.16 版本的 hbuilder 打包进去的,而用户手机上安装的是 3.2.9 版本的 hbuilder 打包的整包,所以在更新时提醒编译版本和手机内运行的版本不统一。

解决办法

  • 1、从新打包 apk

解决这个问题的办法有很多,其中对 app 来说,最好的办法就是用高版本的 3.2.16 打一个新包,并让用户强制更新到新包,因为 hbuilder 降级会修复很多 bug,其中有一些 bug 是须要咱们关注的,降级到最新版本能够达到缩小 bug 的目标。

  • 2、回退 hbuilder 版本

然而整包强制更新对用户不太敌对,对于用户来说,最好的办法就是重新安装 3.2.9 的 hbuilder 打包,放弃和用户手机对立的版本,在下一次须要整包更新的再降级到最新的 hbuilder,这样的毛病就是,当 hbuilder 修复了一些重要的 bug,作为开发者不能第一工夫享受到这个修复,如果这个 bug 还影响用户,那就必须进行降级了。

  • 3、疏忽弹窗

第三种办法就是不解决版本差别,而间接疏忽弹窗,“不匹配的版本可能造成利用异样。”,可能也就代表了不肯定,小版本的更新,少数状况下咱们是能够间接疏忽的,疏忽的办法也很简略:

manifest.json 中,"app-plus"->"compatible"增加配置:

"app-plus": {  
    "compatible": {"ignoreVersion": true //true 示意疏忽版本查看提示框,HBuilderX1.9.0 及以上版本反对}
},  

更多细节内容能够参考官网的阐明:

uni-app 运行环境版本和编译器版本不统一的问题

正文完
 0