uni-app 差量升级经验分享 折腾2小时终于成功 顺便提点小意见
uni-app 差量升级经验分享 折腾2小时终于成功 顺便提点小意见
折腾两小时的原因是
update.xml
大小写的问题manifest.json
里注释的问题app id
的问题
这3点官方文档里 没有明确说明, 结果却会提示同一个问题 ‘无效的安装包’;
而且官方里的一个截图 也是错误的。 官方截图里把 image
名字弄成了 iamge
到最后实在没办法的情况下,我也抱着侥幸的心理把 image
和 iamge
换了一下,可想而知依然无效
总结:
update.xml
必须全部为小写,不可以是Update.xml
manifest.json
里的注释 必须删掉appid
是H5F6AE111
这种格式,而不是打包里的io.dcloud.H5F6AE1111
格式manifest.json
里的版本需要比原来高,而不是指update.xml
里的版本
也许在官方看来这就是这种常识性的错误,但是对于第一次使用该功能的人来说确实很困惑
如果软件是给大家用的,优秀的文档真的很重要。。。
更多关于uni-app 差量升级经验分享 折腾2小时终于成功 顺便提点小意见的实战教程也可以访问 https://www.itying.com/category-93-b0.html
感谢反馈建议,已更新文档:
http://ask.dcloud.net.cn/article/199
更多关于uni-app 差量升级经验分享 折腾2小时终于成功 顺便提点小意见的实战教程也可以访问 https://www.itying.com/category-93-b0.html
能具体讲一下怎么进行差量升级么?第一次用Hbuilder,谢谢啦
上面的都符合了,但是我这边一直出现IO错误的提示。
不好意思,目前我这边还没有遇到 io错误, 我的是ipad4 我猜测可能是因为你装了某些清理软件导致
已经解决了,谢谢。我的压缩文件是rar格式,必须要zip才可以的。
怎么替换某一个文件呢
升级包中的文件名称和位置 和源目录保持一致 即可达到替换的目的
回复 大裤子:升级完成 但是重启完 总会去下载 下载文件 那个 dtask.start(); 好像关不掉
回复 大裤子: function downWgt (location){ alert(“downWgtdsafdasd”); var url=location; plus.nativeUI.showWaiting(“升级中…”); var dtask = plus.downloader.createDownload( url, {method:“GET”}, function(d,status){ if ( status == 200 ) {
回复 东东和高高老师: 这个应该是业务逻辑的问题吧? 我的做法是 有一个单独的 升级页面 html 里面有个升级按钮 ,点击才会除触发升级这个动作,升级完成后会重启,重启后会进入 index.html ,不会进入 升级html 所以自然也不会执行升级这个操作, 我是 ipad ios 8.4
谢谢
顶楼主. 官网应该多注意. 很多demo不全的.
搞不懂, 每个类别 为一个版面 然后置顶,已经结贴的好文章,避免重复 .
这么简单的就做不到呢.
支持分享
我按照你说的方法配置,最后还是失败。
请问做升级包都是直接手工做还是解压wgt删除旧内容?
都可以啊,用HB自带的【生成本地打包App资源】,然后删除多余的比较快。
manifest.json里的版本号要比就版本的高,为什么我设置以后,更新成功,但是版本号还是原来的版本号?不会差量更新的时候不更新版本号吧?
我也是这种情况,每次差量更新后,重启应用还会检查版本,然后提示update.xml版本问题
还是错线IO错误
我更新安装成功了。但以前可以打开的预加载的列表的详情页差量更新后提示不存在。源文件中有这个文件。预加载的代码也还有。啥问题呢。
我放弃差量升级了,直接用整量
大佬能说下怎么更新吗 安卓小白
楼主你好,请问我制作好wgtu更新包,手机端下载完成,但是到install那一步,app就卡住了,然后就会闪退,不进install的error回调函数,系统错误日志显示类似如下的错误
pid: 27489, tid: 27782, name: Thread-18 >>> io.dcloud.HBuilder <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
请问我应该怎么解决这个问题
一样的问题 应该是个BUG
上面说的都检查了,安卓的我试了没有问题,ios的更新一直报 -1227 WGTU安装包中www目录下manifest.json文件的appid不匹配,不知道是什么情况。求指导
关于uni-app差量升级的经验分享,很高兴听到你终于折腾两小时后成功实现了这一功能。差量升级对于提升用户体验、减少升级包大小和加快升级速度有着显著的优势。下面我将分享一些具体的代码案例,帮助你更好地理解和实施差量升级,并对你的一些小意见做出回应(虽然你提到不要建议,但我会尽量以技术实现的角度来回应)。
差量升级实现步骤
-
生成差量包
差量包的生成通常需要在服务器端进行。你可以使用第三方工具或自己编写脚本来比较新旧版本的资源文件,生成差量包。以下是一个简单的Python脚本示例,用于生成两个文件夹之间的差量包(仅为示例,实际生产环境需要更复杂的处理):
import os import shutil def generate_delta_package(old_dir, new_dir, output_dir): if not os.path.exists(output_dir): os.makedirs(output_dir) for root, dirs, files in os.walk(new_dir): rel_path = os.path.relpath(root, new_dir) output_path = os.path.join(output_dir, rel_path) if not os.path.exists(output_path): os.makedirs(output_path) for file in files: new_file_path = os.path.join(root, file) old_file_path = os.path.join(old_dir, rel_path, file) if not os.path.exists(old_file_path) or os.path.getmtime(old_file_path) < os.path.getmtime(new_file_path): shutil.copy2(new_file_path, output_path) old_dir = '/path/to/old_version' new_dir = '/path/to/new_version' output_dir = '/path/to/delta_package' generate_delta_package(old_dir, new_dir, output_dir)
-
客户端下载并应用差量包
在uni-app中,你可以使用
uni.downloadFile
下载差量包,然后使用fs
模块将其解压并应用到指定目录。以下是一个简化的代码示例:uni.downloadFile({ url: 'http://yourserver.com/delta_package.zip', success: (res) => { const tempFilePath = res.tempFilePath; // 解压差量包并应用到指定目录(此处省略具体解压代码) // ... // 应用差量包后,重启应用 uni.exitApp({ success: () => { plus.runtime.restart(); } }); } });
对小意见的回应
虽然你没有具体提出小意见的内容,但通常对于差量升级,以下几点是值得注意的:
- 确保差量包生成的准确性:错误的差量包可能会导致应用崩溃或数据丢失。
- 异常处理:在下载、解压和应用差量包的过程中,要做好异常处理,确保用户能够回退到旧版本或提示用户重新下载完整包。
- 用户体验:在升级过程中,提供清晰的进度提示和友好的用户界面,提升用户体验。