HarmonyOS 鸿蒙Next build-profile.json5会被覆盖的问题

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next build-profile.json5会被覆盖的问题

使用auto sign会出现签名覆盖的问题导致频繁出现冲突,这个现在有解决方案吗

2 回复
import { appTasks, OhosPluginId } from '@ohos/hvigor-ohos-plugin';
import * as data from "./data.json"
import { getNode } from '@ohos/hvigor'


export default {
    system: appTasks,  /* Built-in plugin of Hvigor. It cannot be modified. */
    plugins: [customPlugin()],       /* Custom plugin to extend the functionality of Hvigor. */
    // config: {
    //     ohos: {
    //         overrides:{
    //             signingConfig: getSigningConfig(), //签名配置对象
    //             appOpt: {
    //                 versionCode: getVersionCode(),
    //                 versionName: getVersionName(),
    //             } //app.json中的内容
    //         }
    //     }
    // }
}

function customPlugin(): HvigorPlugin{
    return {
        pluginId: 'customPlugin',
        apply(currentNode: HvigorNode){
            // 插件主体
            console.log('hello customPlugin!');

            hapTask();
        }
    }
}
function hapTask(entry:HvigorNode) {
    const rootNode = getNode(__filename);
    rootNode.afterNodeEvaluate(node => {
        // 获取app插件的上下文对象
        const appContext = node.getContext(OhosPluginId.OHOS_APP_PLUGIN) as OhosAppContext;
        // 通过上下文对象获取从根目录build-profile.json5文件中读出来的obj对象
        const buildProfileOpt = appContext.getBuildProfileOpt();
        // 修改obj对象为想要的,此处举例修改app中的signingConfigs
        buildProfileOpt['app']['signingConfigs'] = [
            {
                "name": "default",
                "type": "HarmonyOS",
                "material": {
                    "certpath": data.certpath,
                    "storePassword": data.storePassword,
                    "keyAlias": data.keyAlias,
                    "keyPassword": data.keyPassword,
                    "profile": data.profile,
                    "signAlg": data.signAlg,
                    "storeFile": data.storeFile
                }
            }
        ];
        // 将obj对象设置回上下文对象以使能到构建的过程与结果中
        appContext.setBuildProfileOpt(buildProfileOpt);
    })
}


关于HarmonyOS 鸿蒙Next中build-profile.json5文件被覆盖的问题,这通常发生在多人协作开发或配置更新时。以下是一些可能的原因及解决方案:

  1. 版本控制冲突:在多人协作开发中,如果多个开发者同时修改了build-profile.json5文件,并尝试提交到版本控制系统(如Git),可能会导致文件覆盖。建议建立明确的代码提交规范,使用分支管理来避免冲突。
  2. 构建工具或IDE自动更新:某些构建工具或集成开发环境(IDE)可能会在构建过程中自动更新配置文件。检查IDE或构建工具的设置,确保它们不会在未经许可的情况下覆盖文件。
  3. 手动误操作:有时,开发者在手动编辑文件时可能会不小心覆盖之前的配置。在编辑前,建议备份文件或使用版本控制系统来跟踪更改。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。他们将能够提供更具体的帮助和指导。

回到顶部