基于动态配置签名的多人协同开发应用签名解决方案

场景描述

合作开发中,build-profile.json5文件里signingConfigs是每个人自己的签名,导致大家本地始终有个文件无法git add,切分支也受影响。文件里又有其他节点,不能将整个build-profile.json5加入gitignore。

能力说明

hvigor-ohos-plugin插件支持在hvigorfile.ts里接收部分编译配置,以实现动态配置构建配置、并使能到构建的过程与结果中。可以在工程级的hvigorfile.ts的config.ohos中配置的字段:

方案步骤:

一、使用在线签名进行签名

二、建json文件存放签名信息

新建json文件,将build-profile.json5签名配置信息拷贝到json文件上。

三、删除build-profile.json5中signingConfigs信息

四、编写自定义构建任务

通过在hvigorfile.ts里使用函数方法,动态配置签名材料。

//工程级别hvigorfile.ts
import { appTasks } from '@ohos/hvigor-ohos-plugin';
// import * as data from "./data.json"
import * as data from "./data.json"
export default {
  system: appTasks,  /* Built-in plugin of Hvigor. It cannot be modified. */
  plugins: [],       /* Custom plugin to extend the functionality of Hvigor. */
  config: {
    ohos: {
      overrides:{
        signingConfig: getSigningConfig(), //签名配置对象
        appOpt: {
          versionCode: getVersionCode(),
          versionName: getVersionName(),
        } //app.json中的内容
      }
    }
  }
}
 
function getSigningConfig() {
  return {
    type: "HarmonyOS",
    material: {
      certpath: data.certpath,
      storePassword: data.storePassword,
      keyAlias: data.keyAlias,
      keyPassword: data.keyPassword,
      profile: data. profile,
      signAlg: data.signAlg,
      storeFile: data.storeFile
    }
  }
}
 
function getVersionCode() {
  return 100000;
}
 
function getVersionName() {
  return "1";
}``

五、编译打包完成签名

此时,build-profile.json5中不需要再配置签名信息,可以将data.json加入.gitignore,构建任务已经调用本地data.json中的信息。

点击运行,显示安装成功。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值