你猜猜我是谁
你猜猜我是谁
  • 发布:2019-05-06 11:29
  • 更新:2020-06-02 16:58
  • 阅读:1056

求助:iOS下wgtu差量更新问题!

分类:HTML5+

如题,举个例子,我一个版本1.0的外部更新从Appstore下载,然后发布了1.1的热更新包更新a.html、b.html两个文件,接着第三次发版2.0的版本外部更新从Appstore下载,接着发布2.1的热更新包更新c.html、d.html两个文件。
预期效果只更新2.1热更新包的c.html、d.html两个文件,
实际效果更新了1.1热更新包a.html、b.html和2.1热更新包的c.html、d.html,共4个文件,

如果在2.0的版本里面修改了a.html、b.html就会导致2.1的最新包中a.html、b.html俩文件跟1.1版本的包一样,
删除1.1热更新包再下载2.1热更新包,并安装升级2.1之后也会包含1.1热更新包中内容,求大神指点。

2019-05-06 11:29 负责人:无 分享
已邀请:
chanyhot

chanyhot

同问

你猜猜我是谁

你猜猜我是谁 (作者)

附:1.1wgtu包中update.xml文件

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<wgtu appid="H5A9A1F63">
<basis version="1.0" />
</wgtu>

附:2.1wgtu包中update.xml文件

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<wgtu appid="H5A9A1F63">
<basis version="2.0" />
</wgtu>

你猜猜我是谁

你猜猜我是谁 (作者)

求大神指点

你猜猜我是谁

你猜猜我是谁 (作者)

差量更新有没有大神?

DCloud_App_Array

DCloud_App_Array

这种情况应该限定只能1.0版本应用下载使用1.1的wgtu更新包,限定只能2.0版本应用下载使用2.1的wgtu更新包。
至于更新的文件取决于wgtu文件中定义的更新内容(如果wgtu中只有b/c两个文件,是不可能会更新a文件的呀)。

  • 你猜猜我是谁 (作者)

    根据我们测试结果,确实是会一起更新,H5+ sdk是2018年12月26日发布的那个版本

    2019-05-07 15:40

  • 你猜猜我是谁 (作者)

    日志我发出来了,这是生产事故,非常着急,麻烦帮忙看看,谢谢

    2019-05-07 15:45

你猜猜我是谁

你猜猜我是谁 (作者)

2019-05-07 15:29:58.014582 [276:10073] [Runtime][INFO:] Archiver file fullPath /var/mobile/Containers/Data/Application/3382979A-816F-44A3-B281-12E363727ED6/Library/Pandora/apps/H5A9A1F64/data/download.plist
2019-05-07 15:29:58.014886
[276:10073] [Runtime][INFO:] Unarchiver task url http://test..com/staticpage/1.1.wgtu
2019-05-07 15:29:58.014910
[276:10073] [Runtime][INFO:] Unarchiver task filename /var/mobile/Containers/Data/Application/1F1CE532-954F-4D3E-A7CE-2743490D86C2/Library/Caches/Pandora/downloads/update/1.1.wgtu
2019-05-07 15:29:58.014931 [276:10073] [Runtime][INFO:] Unarchiver task finishFileSize 169233
2019-05-07 15:29:58.014949
[276:10073] [Runtime][INFO:] Unarchiver task state 4
2019-05-07 15:29:58.014966 [276:10073] [Runtime][INFO:] Unarchiver task url http://test..com/staticpage/2.1.wgtu
2019-05-07 15:29:58.014982 [276:10073] [Runtime][INFO:] Unarchiver task filename /var/mobile/Containers/Data/Application/3382979A-816F-44A3-B281-12E363727ED6/Library/Caches/Pandora/downloads/update/2.1.wgtu
2019-05-07 15:29:58.014999
[276:10073] [Runtime][INFO:] Unarchiver task finishFileSize 6690
2019-05-07 15:29:58.015015 [276:10073] [Runtime][INFO:] Unarchiver task state 4
2019-05-07 15:29:58.015053
[276:10073] [Runtime][INFO:] Archiver file fullPath /var/mobile/Containers/Data/Application/3382979A-816F-44A3-B281-12E363727ED6/Library/Pandora/apps/H5A9A1F64/data/upload.plist
2019-05-07 15:29:58.015205 ****[276:10073] [Runtime][DEBUG:] ##CoreApp##...重启应用结束

  • 你猜猜我是谁 (作者)

    这是第二次热更新的日志

    2019-05-07 15:45

  • DCloud_App_Array

    回复 你猜猜我是谁: 日志中说明更新了两次,两次更新就是两次合并的结果,逻辑上应该是正常的吧

    2019-05-07 20:45

  • 你猜猜我是谁 (作者)

    回复 DCloud_App_Array: 我把下载和更新的代码贴出来了,请帮忙看看,谢谢

    2019-05-08 08:58

  • 你猜猜我是谁 (作者)

    回复 DCloud_App_Array: 我这个是两次热更新中间有发布版本更新,就是第一次是发布更新,第二次是热更新,第三次是发布更新,第四次是热更新,两次热更新中间隔了个版本发布(Appstore上架),时间跨度几个月

    2019-05-08 09:21

你猜猜我是谁

你猜猜我是谁 (作者)

function download(){
// 下载wgt文件
var wgtUrl = plus.webview.currentWebview().path;
var download = plus.downloader.createDownload( wgtUrl, {filename:"_downloads/update/"}, function(d,status){
if ( status == 200 ) {
installWgt(d.filename); // 安装wgt包
} else {
plus.nativeUI.alert("下载wgt失败!",function(){
plus.runtime.restart();
});
}
})
download.start();
var loading = setInterval(function(){
var percent = download.downloadedSize/download.totalSize*100
$('#loading').css('width',percent+'%');
if (percent == 100) {
clearInterval(loading);
}
},100);
}

    // 更新应用资源  
    function installWgt(path){  
        setTimeout(function(){  
            plus.runtime.install(path,{},function(){  
                plus.runtime.restart();  
            },function(e){  
                plus.nativeUI.alert("安装wgt文件失败["+e.code+"]:"+e.message,function(){  
                    plus.runtime.restart();  
                });  
            });  
        },200);  
    }
你猜猜我是谁

你猜猜我是谁 (作者)

2019-05-08 11:11:02.181397+0800 [471:33357] [Runtime][INFO:] dowloader response statusCode:200
2019-05-08 11:11:02.181435+0800
[471:33357] [Runtime][INFO:] dowloader response file fullpath:/var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Caches/Pandora/downloads/update/2.1.wgtu
2019-05-08 11:11:03.176334+0800 [471:33357] Cannot make directory /var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Pandora/apps/H5A9A1F64/www_Install: File exists
2019-05-08 11:11:03.177592+0800
[471:33357] Cannot make directory /var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Pandora/apps/H5A9A1F64/www_Install/html: File exists
2019-05-08 11:11:03.253002+0800 [471:33357] [LOG] : 2.1.wgtu
2019-05-08 11:11:03.253658+0800
[471:33357] [LOG] : success
2019-05-08 11:11:03.354941+0800 [471:33357] [Runtime][DEBUG:] ##CoreApp##...需要重启应用
2019-05-08 11:11:03.381758+0800
[471:33357] [Runtime][DEBUG:] ##CoreApp##...应用end成功
2019-05-08 11:11:03.381811+0800 [471:33357] [Runtime][DEBUG:] ##CoreApp##...开始重启应用
2019-05-08 11:11:03.381863+0800
[471:33357] [Runtime][DEBUG:] ##CoreApp##...app start load..
2019-05-08 11:11:03.383500+0800 [471:33357] -canOpenURL: failed for URL: "hbuilder://" - error: "未能完成操作。(“OSStatus”错误 -10814。)"
2019-05-08 11:11:03.383571+0800
[471:33357] [Runtime][DEBUG:] ##CoreApp##...createAppRuntime..
2019-05-08 11:11:03.387902+0800 [471:33357] [Runtime][DEBUG:] splash screen 需要自动关闭
2019-05-08 11:11:03.388378+0800
[471:33357] [Runtime][DEBUG:] ##CoreApp##...createAppWindow..
2019-05-08 11:11:03.388552+0800 [471:33357] [Runtime][DEBUG:] ##CoreApp##...创建首页..
2019-05-08 11:11:03.391880+0800
[471:33357] [Runtime][DEBUG:] show NWindow--[H5A9A1F64]
2019-05-08 11:11:03.392471+0800 [471:33357] [Runtime][INFO:] Archiver file fullPath /var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Pandora/apps/H5A9A1F64/data/download.plist
2019-05-08 11:11:03.392629+0800
[471:33357] [Runtime][INFO:] Archiver file fullPath /var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Pandora/apps/H5A9A1F64/data/upload.plist
2019-05-08 11:11:03.392730+0800 [471:33357] [Runtime][DEBUG:] ##CoreApp##...重启应用结束
2019-05-08 11:11:03.440602+0800
[471:33357] [Runtime][DEBUG:] main page loader end

  • 你猜猜我是谁 (作者)

    这个日志是代码加了下载成功清除下载任务的功能,但是问题依然没有解决,代码如下 plus.downloader.clear(4);

    2019-05-08 11:20

  • 你猜猜我是谁 (作者)

    2019-05-08 11:11:03.176334+0800 [471:33357] Cannot make directory /var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Pandora/apps/H5A9A1F64/www_Install: File exists

    2019-05-08 11:11:03.177592+0800 [471:33357] Cannot make directory /var/mobile/Containers/Data/Application/AE855627-FC5E-4852-903C-C71B3A8DC431/Library/Pandora/apps/H5A9A1F64/www_Install/html: File exists


    这俩报错很可疑,怀疑是解压安装目录会遗留文件导致安装上次热更新的文件

    2019-05-08 11:21

你猜猜我是谁

你猜猜我是谁 (作者)

function download(){
// 下载wgt文件
var wgtUrl = plus.webview.currentWebview().path;
download = plus.downloader.createDownload( wgtUrl, {filename: downloadPath}, function(d,status){
if ( status == 200 ) {
plus.downloader.clear(4);
installWgt(d.filename); // 安装wgt包
} else {
plus.nativeUI.alert("下载wgt失败!",function(){
plus.runtime.restart();
});
}
});
download.start();
var loading = setInterval(function(){
var percent = download.downloadedSize/download.totalSize*100;
$('#loading').css('width',percent+'%');
if (percent == 100) {
clearInterval(loading);
}
},100);
}

  • 你猜猜我是谁 (作者)

    新增下载成功清除下载任务功能代码

    2019-05-08 11:22

DCloud_App_Array

DCloud_App_Array

你描述的问题是因为2.0版本会先更新1.1的wgtu,也会更新2.1版本的wgtu,是这样吧?
这个逻辑是升级服务器来控制的呀,2.0版本不要下发更新1.1的wgtu,不就没有你说的这个问题吧。

  • 你猜猜我是谁 (作者)

    是这个问题,但是我们并没有下发,我们打印过下载路径和安装路径,只有2.1版本的,我们还删除过服务器上1.1.wgtu包试过,都不行,只有把安装包整个卸载热更新才会只更新2.1版本,是不是更新时候解压文件没有清除?

    2019-05-08 11:27

  • DCloud_App_Array

    回复 你猜猜我是谁: 按你你说的情况,那就是跟wgtu更新无关,而是ipa覆盖安装资源没有更新,把两个ipa发出来?请明确清楚问题的核心点,才能有效的解决问题。

    2019-05-08 13:14

  • 你猜猜我是谁 (作者)

    回复 DCloud_App_Array: 1.1的wgtu我们修改了a.html和b.html,2.0的ipa在1.1的wgtu基础上又修改了a.html和b.html,热更新2.1的wgtu只有c.html和d.html,更新完之后,a.html和b.html不是预期版本的,也就是是1.1版本的不是2.0版本的,也就是说热更新后版本回退了,c.html和d.html是预期的2.1版本的

    2019-05-08 13:29

  • DCloud_IOS_XTY

    回复 你猜猜我是谁: 请提供下1.1 2.0 2.1 的wgtu文件

    2019-05-09 11:49

DCloud_IOS_XTY

DCloud_IOS_XTY

appstore升级之后将以IPA中携带的应用为准,wgt升级的内容失效,请确认下IPA中携带的应用是否正确

j***@126.com

j***@126.com

同问,app版本升级安装后,资源文件始终会是之前旧版本热更新留下的最后资源文件,必须要手动清app缓存数据后才是正常的

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