uni-app热更新后本地包版本名称(版本号)不变化问题,如第一版本1.0热更新至1.0.1,但更新后本地包仍显示1.0.0

uni-app热更新后本地包版本名称(版本号)不变化问题,如第一版本1.0热更新至1.0.1,但更新后本地包仍显示1.0.0

信息类别 详情
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 Windows 11 家庭中文版
HBuilderX 正式
HBuilderX版本号 3.98
手机系统 Android
手机版本号 Android 8.0
手机厂商 vivo
手机机型 IQOO Neo5
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

  • 随便建个demo,使用wgt更新,发现本地包的版本名称不会变化

预期结果:

  • 热更新,本地包的版本名称会跟随变化

实际结果:

  • 热更新,版本名称不会变化

bug描述:

  • 热更新,本地包的版本名称(版本号)不会变化,如第一版本是1.0,热更新发布的是1.0.1,更新本地包显示的还是1.0.0

更多关于uni-app热更新后本地包版本名称(版本号)不变化问题,如第一版本1.0热更新至1.0.1,但更新后本地包仍显示1.0.0的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

有解决吗?

更多关于uni-app热更新后本地包版本名称(版本号)不变化问题,如第一版本1.0热更新至1.0.1,但更新后本地包仍显示1.0.0的实战教程也可以访问 https://www.itying.com/category-93-b0.html


使用 plus.runtime.getProperty 获取

在uni-app开发中,热更新(Hot Update, H5热更新或原生App的热更新机制)是一个常见功能,用于在不重新发布应用的情况下推送代码更新。然而,关于热更新后本地包版本名称(或版本号)不变化的问题,这通常涉及到几个方面的配置和代码管理。

首先,确保你的uni-app项目正确配置了版本管理。在manifest.json文件中,mp-weixin(或其他平台)的配置区域,你可以设置应用的版本号。例如:

{
  "mp-weixin": {
    "appid": "your-app-id",
    "setting": {
      "versionName": "1.0.1",  // 版本名称
      "versionCode": "101"     // 版本代码,通常用于区分不同版本,数值递增
    }
  }
}

对于热更新机制,uni-app主要通过两种方式实现:H5热更新和原生App的热更新(如使用DCloud的wap2app服务)。

H5热更新

H5热更新通常依赖于服务端的配置,客户端在启动时或定期检查服务端是否有新的资源文件。若有,则下载并替换本地文件。版本号的显示通常依赖于前端代码逻辑,比如你可以通过API请求获取服务端配置的版本号,并在UI上显示。

示例代码(前端获取并显示版本号):

// 假设你有一个API返回当前应用的版本信息
uni.request({
  url: 'https://your-server.com/api/version',
  success: (res) => {
    const { versionName } = res.data;
    // 更新UI显示版本号
    this.setData({
      currentVersion: versionName
    });
  }
});

原生App热更新

对于原生App,热更新通常涉及更复杂的机制,包括代码打包、签名、上传至服务器,以及客户端的下载、校验、安装等步骤。在这个过程中,确保manifest.json中的版本号已经更新,并且打包工具(如HBuilderX)正确读取了这个版本号。

此外,原生App在热更新后可能需要重启应用才能完全应用新版本(取决于热更新的实现方式)。确保在重启后,应用能够正确读取并显示新的版本号。

最后,如果你在热更新后仍然遇到版本号不更新的问题,建议检查以下几点:

  1. 确认manifest.json中的版本号已经更新。
  2. 确认打包工具(如HBuilderX)使用了最新的manifest.json配置。
  3. 确认热更新机制正确实现了版本号的更新和显示逻辑。
  4. 对于原生App,确认热更新后的代码已经正确安装并生效。
回到顶部