在DevEco Studio中,默认创建的项目,仅有default这一项签名的配置。在开发阶段和发布阶段因需要使用不同的签名证书,如果仅用default这一配置项,那么就得在开发及发布阶段时切换default配置项中的证书及密码的配置。
本篇内容是《精通HarmonyOS NEXT :鸿蒙App开发入门与项目化实战》这本书第15章内容的延续,是咱这本书读者的福利,内容重点介绍如何实现多签名的配置,支持在开发版调试及发布版打包时,不需要更改签名相关的配置,实现一次配置多次受益的目标。

1: 背景简介
在DevEco Studio中,默认创建的项目,仅有default这一项签名的配置。在开发阶段和发布阶段因需要使用不同的签名证书,如果仅用default这一配置项,那么就得在开发及发布阶段时切换default配置项中的证书及密码的配置。
新建一个项目,查看一下,工程目录中的build-profile.json5文件内容如下(DevEco Studio 5.1.1 Release创建,其它的版本可能会略有不同),这时可以看到 signingConfigs的配置内容还为空。
{
"app": {
"signingConfigs": [],
"products": [
{
"name": "default",
"signingConfig": "default",
"targetSdkVersion": "5.1.1(19)",
"compatibleSdkVersion": "5.1.1(19)",
"runtimeOS": "HarmonyOS",
"buildOption": {
"strictMode": {
"caseSensitiveCheck": true,
"useNormalizedOHMUrl": true
}
}
}
],
"buildModeSet": [
{
"name": "debug",
},
{
"name": "release"
}
]
},
"modules": [
{
"name": "entry",
"srcPath": "./entry",
"targets": [
{
"name": "default",
"applyToProducts": [
"default"
]
}
]
}
]
}2: 配置联机证书
这时,如需要进行联机调试,常见的做法为,进入Project Structure,如下图,在File菜单项中,点击Project Structure。(这部分在书中有介绍,如已知晓,则忽略本小节)

这时打开了Project Structure视图,进入Signing Configs选项卡,选中Support HarmonyOS和Automatically generate signature这两个选项卡,如下图

之后,DevEco Studio会自动生成相关的签名证书配置,点击OK,即完成了默认的开发版签名证书的配置。点击完成后。
这时再查看build-profile.json5文件内容中 signingConfigs的配置内容已经有值了,这时即可以联机调试了。

3: 配置发布证书
当开发证书配置成功之后,现在整个项目中,仅配置了开发环境的这一个证书。如需要在发布阶段也使用证书,可以使用手动的方式,配置一下发布证书(具体的配置方式本书的15章第一小节有介绍,在这里重点说一下如何实现双证书的共存),回到Project Structure视图,进入Signing Configs选项卡,选中Support HarmonyOS和Automatically generate signature这两个选项卡,如下图,点击红框中的加号。

这时弹出Add Signing Config对话框,如下图,在Signing config name选项中,输入 release,之后点击OK,

这时回到回到Project Structure视图,仅勾选Support HarmonyOS,之后按实际情况,配置签名证书信息。
这时,再打开build-profile.json5文件,签名配置项,多了name为release的配置。

4: 关联发布证书
配置好证书之后,我们的目标是可以灵活的按需指定证书,编译不同版本的App包。在DevEco Studio中,可以通过不同的产品来关联不同的证书,即build-profile.json5文件中的products配置项,默认如下图所示。

name为default的products配置项,使用的签名为default。将该配置项复制一份,将name和signingConfing均改为release,如下图所示。

这时,product的对话框中(点工具区的Product按钮),在product下拉选项中有了release的选项,如下图所示

选择release,如下图所示,Target Select中的Module Target是不可选的状态,这是因为Module还没有对应的Target可以支持。需要对modules的target进行配置。

如下图所示,对build-profile.json5文件中的modules配置项,关联release Product。

这时,product的对话框中,Module Target为可选状态。这时证书关联的工作已经完成

5: 开发及发布时的证书切换
基于上述的配置,在开发阶段,使用default产品,在发布阶段使用release产品,在Product对话框中切换配置即可,而不需要再重新配置覆同一个证书的配置了。
总结:
本文是《精通HarmonyOS NEXT :鸿蒙App开发入门与项目化实战》书中第15章内容的延续,是为读者提供的福利,本文针对DevEco Studio默认单签名配置的痛点,详细讲解如何实现开发/发布双签名配置方案。通过修改build-profile.json5文件,添加release签名配置并关联对应product,开发者可在不修改证书信息的情况下,通过切换product选项快速选择开发版或发布版签名。文章包含5个关键步骤:1)初始配置分析;2)联机调试证书配置;3)发布证书添加;4)产品与证书关联;5)开发/发布切换演示。该方案有效解决了频繁修改签名配置的成本。

















