uni-app 打热更新包时文件版本号没有变

uni-app 打热更新包时文件版本号没有变

信息类别 详细信息
产品分类 uniapp/App
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 12
HBuilderX类型 正式
HBuilderX版本号 3.7.11
手机系统 全部
手机系统版本号 Android 10
手机厂商 小米
手机机型 k40
页面类型 vue
vue版本 vue3
打包方式 离线
项目创建方式 HBuilderX

测试过的手机:

  • iphoneX
  • 小米k40

操作步骤:

  • wgt打包

预期结果:

  • 打包没问题

实际结果:

  • 偶现文件中版本号不改变

bug描述:

我在项目文件配置axconfig.ts(用于判断是否需要热更新) 和 manifest.json中修改了版本号,触发热跟新
但是打出来的wgt包 manifest.json版本号改了axconfig中没有变
经验证本地文件缺失修改了
相同配置再次打包就没问题了

4 回复

暂时没有开发做sdk升级


上次热更新就是因为这个问题,没办法了,所有app重新上架,要命

{“code”:-1205,“message”:“WGT安装包中manifest.json文件的version要高于现有版本号,https://ask.dcloud.net.cn/article/282”}
因为我是根据axconfig中的version判断的,打包的wgt没有修改这个版本号,所有热更新完成后重启应用,又热更新一次,就报错了,
因为我只负责打包,编辑器做了撤回,到最开始,确实版本号写的是2.2.86
就很离谱

在使用 Uni-App 进行热更新时,如果发现文件版本号没有变化,可能是以下几个原因导致的。以下是一些常见的排查步骤和解决方法:


1. 检查 manifest.json 中的版本号

  • 热更新包的版本号是基于 manifest.json 中的 versionNameversionCode 字段生成的。
  • 确保你在打包前已经更新了 manifest.json 中的版本号:
    {
      "versionName": "1.0.1", // 更新版本名称
      "versionCode": 2        // 更新版本代码
    }
  • 如果版本号没有更新,热更新包可能会被认为是同一个版本。

2. 确保正确执行热更新打包命令

  • 在打包热更新包时,确保使用的命令是正确的:
    npm run build:app-plus -- --platform=android --target=apk --mode=release --hot
  • 如果你使用的是 HBuilderX,确保在打包时勾选了“生成热更新包”选项。

3. 检查 www 目录下的文件

  • 热更新包是基于 www 目录下的文件生成的。
  • 确保 www 目录下的文件已经更新,并且没有缓存问题。

4. 清理缓存和旧包

  • 有时缓存可能导致版本号未更新。尝试以下操作:
    • 删除 unpackage 目录。
    • 删除 dist 目录。
    • 重新打包。

5. 检查热更新配置

  • 确保在 manifest.json 中正确配置了热更新功能:
    {
      "app-plus": {
        "update": {
          "enabled": true,
          "check": true,
          "download": true
        }
      }
    }
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!