1***@qq.com
1***@qq.com
  • 发布:2021-05-12 15:28
  • 更新:2021-05-12 15:53
  • 阅读:632

【报Bug】热更新失败.以前成功的

分类:HBuilderX

产品分类: HbuilderX

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win 10

HBuilderX版本号: 2.8.13

App下载地址或H5⽹址: https://lianheit-static.oss-cn-shenzhen.aliyuncs.com/huanbao/apk/huanbao.apk

示例代码:

                            uni.downloadFile({  
                                url: res.data.wgtUrl,  
                                success: (downloadResult) => {  
                                    console.log(123)  
                                    console.log(downloadResult)  
                                    if (downloadResult.statusCode === 200) {  
                                        console.log(downloadResult)  
                                        console.log(downloadResult.tempFilePath)  
                                        plus.runtime.install(downloadResult.tempFilePath, {  
                                            force: false  
                                        }, function() {  
                                            console.log('install success...');  
                                            plus.runtime.restart();  
                                        }, function(e) {  
                                            console.log('install fail...' +JSON.stringify(e));  
                                        })  
                                    }  
                                }  
                            });``` 

操作步骤:

检查更新代码


            AndroidCheckUpdate() {  
                var that = this;  
                uni.request({  
                    url: that.$common.serverUrl + 'system_base_data/get_apk_version', //获取最新版本号  
                    method: 'GET',  
                    data: {},  
                    success: res => {  
                        console.log(res)  
                        var locversion = uni.getStorageSync("version");  
                        var sysversion = res.data.version;  

                        var arr1 = locversion.split('.');  
                        var arr2 = sysversion.split(".");  

                        if ((arr1[0] != arr2[0]) || (arr1[1] != arr2[1])) {  
                            uni.showToast({  
                                title: '有新的版本发布,程序已启动自动更新。新版本下载完成后将自动弹出安装程序。',  
                                mask: false,  
                                duration: 5000,  
                                icon: "none"  
                            });  

                            var dtask = plus.downloader.createDownload(res.data.url, {}, function(d, status) {  
                                // 下载完成    
                                if (status == 200) {  
                                    plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename), {}, {}, function(error) {  
                                        uni.showToast({  
                                            title: '安装失败',  
                                            mask: false,  
                                            duration: 1500  
                                        });  
                                    })  
                                } else {  
                                    uni.showToast({  
                                        title: '更新失败',  
                                        mask: false,  
                                        duration: 1500  
                                    });  
                                }  
                            });  
                            dtask.start();  
                        } else if (arr1[2] != arr2[2]) {  
                            console.log('热更新')  
                            uni.downloadFile({  
                                url: res.data.wgtUrl,  
                                success: (downloadResult) => {  
                                    console.log(123)  
                                    console.log(downloadResult)  
                                    if (downloadResult.statusCode === 200) {  
                                        console.log(downloadResult)  
                                        console.log(downloadResult.tempFilePath)  
                                        plus.runtime.install(downloadResult.tempFilePath, {  
                                            force: false  
                                        }, function() {  
                                            console.log('install success...');  
                                            plus.runtime.restart();  
                                        }, function(e) {  
                                            console.log('install fail...' +JSON.stringify(e));  
                                        })  
                                    }  
                                }  
                            });  
                        } else {  
                            var autoLogin = uni.getStorageSync("autoLogin");```

预期结果:

..

实际结果:

..

bug描述:

首先,我apk版本是1.10.85

2021年1月份我热更新到1.10.90这个版本

现在五月份了,我想更新一个版本,但是没有任何反应。所以:1.10.90热更新——>1.10.91 失败

然后我把手机上原来的app卸了,下了个新的1.10.85,试图直接热更新到91的版本:1.10.85——>1.10.91 失败

然后我把wgt版本退回到1.10.90版本,让后台把接口调取的版本也改回了1.10.90版本的。手机上的85版本app再打开:1.10.85——>1.10.90 成功

昨天我在基座上运行了一下,报错 "code":-1205,"message":"WGT安装包中manifest.json文件的version版本不匹配" 基座上1.10.90热更新——>1.10.91 失败

然后我现在为了截图试图重现这个报错,它又运行成功了。可以对照图一和图二,打印出来的的东西是能明确看到install success

所以现在我在基座版本为1.10.90如图3的时候,在wgt版本为1.10.91,后台接口返回1.10.91的时候,热更新成功了。看图四手机上基座截图版本号(此时我的hbuilder上页面里写的版本号是1.10.90的看图五,manifest上写的版本号也是1.10.90的看图3,所以只能是我的1.10.91的wgt成功安装覆盖了)。

另外,我把wgt包下下来打开看过,里面的版本是1.10.91没问题。

所以我的app要怎么办?现在报错也看不到,就是热更新不了,一点反应都没有。

2021-05-12 15:28 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者)

如果有大佬要安装测试的话,可以私信我要账号,因为这个是公司内部使用的,所有没有注册功能。账号是分发的

1***@qq.com

1***@qq.com (作者)

编译器版本是2.9.3(v3)

我以上用的1.10.91版本wgt包都是这两天新下的

我用的1.10.90版本wgt是1月份下的

该问题目前已经被锁定, 无法添加新回复