问题的出现

线上紧急修复bug的时候,经常使用热更新,最近一次热更新后遇到了问题:更新完后下一次打开app时,提示了:

出现这一提示的原因是,上一次版本发布的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运行环境版本和编译器版本不一致的问题

03-05 15:24