【hvigor专栏】OpenHarmony应用开发-hvigor任务之设置应用版本号

50 阅读1分钟

前言

在OpenHarmony应用开发中,编译期控制应用版本是较为常见的功能,比如debug模式和release模式分别设置不同的版本号。下文会以一个完整的示例为大家讲述如何实现此功能。

开发环境

DevEco Studio: DevEco Studio 6.0.0 Release(Build Version: 6.0.0.858)

系统: OpenHarmony 6.0.0.47

设备: DAYU200(rk3568)

开发流程

前置步骤

  1. 创建新工程并配置好签名,正常运行到设备上。

  2. 查看当前工程版本号配置:

AppScope/app.json5下查看 versionCode1000000versionName1.0.0

  1. 查看设备应用版本号:

依次执行

hdc shell
bm dump -n <应用包名>

可以看到versionCode1000000versionName1.0.0,与工程配置相同。

新增hvigor任务

在根目录hvigorfile.ts里修改为以下代码

import { appTasks, OhosPluginId, OhosAppContext, AppJson } from '@ohos/hvigor-ohos-plugin';
import { hvigor, getNode, HvigorNode } from '@ohos/hvigor';

hvigor.nodesEvaluated(() => {
  const node: HvigorNode = getNode(__filename);
  const appContext = node.getContext(OhosPluginId.OHOS_APP_PLUGIN) as OhosAppContext;
  const appJson5: AppJson.AppOptObj = appContext.getAppJsonOpt();
  if (appContext.getBuildMode() === 'debug') {
    appJson5.app.versionName = '2.0.0_debug';
    appJson5.app.versionCode = 2000000
  } else {
    appJson5.app.versionName = '1.0.0_release';
    appJson5.app.versionCode = 1000000
  }
  appContext.setAppJsonOpt(appJson5);
});

export default {
  system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */
  plugins: []       /* Custom plugin to extend the functionality of Hvigor. */
}

运行验证

  1. 编译运行应用,查看当前工程版本号配置versionCodeversionName均无改动。

  2. 查看设备应用版本号:

依次执行

hdc shell
bm dump -n <应用包名>

可以看到versionCode2000000versionName2.0.0_debug,与修改后的设置相同。