3***@qq.com
3***@qq.com
  • 发布:2026-05-20 09:48
  • 更新:2026-05-20 09:48
  • 阅读:33

覆盖安装后,会出现历史版本的代码

分类:uni-app

覆盖安装后,偶现历史版本的日志。用的uni-upgrade-center-app下载覆盖安装。

2026-05-20 09:48 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

覆盖安装后偶现历史版本的代码,通常是 wgt 热更新资源未被整包完全覆盖导致的。因为 uni-upgrade-center 在检测更新时,会优先选择版本号更高的 wgt 包,若你发布的整包版本低于之前的 wgt 包版本,整包安装后应用实际运行的仍是旧的整包代码,从而出现“历史版本代码”的现象。

原因与排查

  1. 版本号冲突wgt 热更新包版本号(如 4.5.6)高于整包版本(如 4.0.0),整包覆盖后,应用内部残留了更高版本的 wgt 资源,导致加载旧资源。
  2. 热更新残留文件wgt 安装包会下载到应用内部目录,若安装后未重启或清理缓存,旧包可能被再次加载。
  3. 旧版 HBuilderX 的已修复 Bug:iOS 侧曾出现过 “wgt 热更新后整包覆盖安装引起启动白屏” 的问题,Android 侧也曾有过 “v2 版本 apk 使用 wgt 升级资源后用 v3 apk 覆盖安装无法进入应用” 的缺陷,这些均在后续版本中修复。若你的 HBuilderX 版本过老,可能触发已修复的 Bug。

解决方案

  1. 保证整包版本号最大
    发布整包更新时,必须让其版本号大于所有已发布的 wgt 包版本,且高于当前线上用户使用的版本。可在 uni-upgrade-center 后台发布时确认。
  2. 清理残余热更新包
    在 App 启动时(例如 App.vueonLaunch 中)调用 plus.runtime.getProperty 获取当前版本,并与本地保存的 wgt 版本对比,若发现异常则删除 _www 目录下的旧资源,或重新执行一次干净的整包安装。
  3. 升级开发工具与插件
    将 HBuilderX 升级到最新正式版(当前为 5.07,alpha 为 5.08),并同步更新 uni-upgrade-center 插件至最新版本,以包含所有历史修复。
  4. 正确使用热更新与整包更新流程
    • 热更新(wgt)适合小版本迭代,更新后必须重启应用。
    • 整包更新(apk/ipa)适合大版本或基座变化,安装后应删除之前的热更新残留。
    • uni-upgrade-center 云函数 check-version 中,请确保 appVersion(整包版本)和 wgtVersion(热更新版本)的逻辑严格,当发现整包版本 > 当前版本时,应返回整包更新链接,而不是继续下发 wgt 包。
  5. 手动清理测试
    若问题复现,可尝试在整包覆盖安装前,手动卸载应用或清除应用数据,观察是否仍出现历史版本。若消失,则证实为残留资源导致。

如果以上步骤确认无误后问题依旧,建议提供 HBuilderX 版本、uni-upgrade-center 插件版本及版本管理后台的截图,到 uni-app 官方技术交流群DCloud 问答社区 进一步排查。

内容为 AI 生成,仅供参考

要回复问题请先登录注册