前言
在OpenHarmony应用开发中,编译期控制应用版本是较为常见的功能,比如debug模式和release模式分别设置不同的版本号。下文会以一个完整的示例为大家讲述如何实现此功能。
开发环境
DevEco Studio: DevEco Studio 6.0.0 Release(Build Version: 6.0.0.858)
系统: OpenHarmony 6.0.0.47
设备: DAYU200(rk3568)
开发流程
前置步骤
-
创建新工程并配置好签名,正常运行到设备上。
-
查看当前工程版本号配置:
在AppScope/app.json5下查看
versionCode为1000000,versionName为1.0.0。
- 查看设备应用版本号:
依次执行
hdc shell
bm dump -n <应用包名>
可以看到versionCode为1000000,versionName为1.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. */
}
运行验证
-
编译运行应用,查看当前工程版本号配置versionCode、versionName均无改动。
-
查看设备应用版本号:
依次执行
hdc shell
bm dump -n <应用包名>
可以看到versionCode为2000000,versionName为2.0.0_debug,与修改后的设置相同。