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

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

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

场景描述

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

能力说明

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

cke_8243.png

cke_6720.png

方案步骤:

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

cke_4924.png

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

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

cke_3817.png

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

cke_2769.png

四、编写自定义构建任务

通过在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”;

}``<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

五、编译打包完成签名

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

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

cke_800.png

7 回复
不行啊,提示error: no signature file

ide版本多少呢,至少5.0后版本

这个设计就不对,个人开发环境的信息不应该放在公共文件中,signingConfigs 应该生成在类似 local.properties中或者 .env.local 这种文件中。
目前还有什么好的解决方案吗?

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

目前是通过替换的方式

HarmonyOS 鸿蒙Next版本对于支持动态配置签名机制,为多人协同开发应用提供了灵活且安全的签名解决方案。该方案允许开发者在开发过程中动态地配置和管理应用签名,无需频繁更换签名文件,简化了协作流程并增强了安全性。请确保所有协作者遵循统一的签名配置规范,使用官方提供的工具进行签名操作。同时,检查项目配置文件中的签名设置,确保无误。如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部