HarmonyOS 鸿蒙Next:一套代码打包成多个应用时,如何配置多个client ID
HarmonyOS 鸿蒙Next:一套代码打包成多个应用时,如何配置多个client ID
请求华为账号服务时需要针对不同应用配置各自的client ID,当前项目是一套代码要打包成四份应用,如何在打包时能够根据不同的打包应用,配置各自的client ID。(当前项目中,在工程级buildprofilejson5中对要打包的多应用进行签名等配置,在entry的module.json5中对打包的应用配置client ID,请问如何能够实现一次写好多个client ID,根据打包的情况对client ID进行选中并配置,不需要人员每次打包时手动更改client ID)
2 回复
import { hapTasks, OhosHapContext, OhosPluginId } from '@ohos/hvigor-ohos-plugin';
import { hvigor, getNode } from '@ohos/hvigor'
const entryNode = getNode(__filename);
entryNode.afterNodeEvaluate(node => {
const hapContext = node.getContext(OhosPluginId.OHOS_HAP_PLUGIN) as OhosHapContext;
const moduleJsonOpt = hapContext.getModuleJsonOpt();
hapContext?.targets((target: Target) => {
const targetName = target.getTargetName();
if (!hapContext) {
return;
}
if (targetName === 'default') {
// 修改obj对象为想要的
moduleJsonOpt['module']['metadata'] = [{ "name": "client_id1", "value": "default" }];
} else if (targetName === 'free') {
moduleJsonOpt['module']['metadata'] = [{ "name": "client_id2", "value": "free" }];
} else {
moduleJsonOpt['module']['metadata'] = [{ "name": "client_id3", "value": "pay" }];
}
})
// 将obj对象设置回上下文对象以使能到构建的过程与结果中
hapContext.setModuleJsonOpt(moduleJsonOpt);
})
export default {
system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. /
plugins:[] / Custom plugin to extend the functionality of Hvigor. */
}