前言
本文基于Api13
经过前面两篇文章,我们获取到了密钥和证书请求文件以及最终的发布证书和发布证书Profile文件,可以说,所有的签名信息文件,我们都已经完成了,正所谓,万事俱备只欠东风,这篇文章,我们着重概述一下,如何配置签名信息以及如何打出签名包。
前面两篇文章,我们生成的文件,一定要保存好,最重要的是三个文件,分别是cer证书文件,.p12密钥文件和.p7b发布证书Profile文件:
配置签名信息
配置签名信息,有两种配置方式,一种是直接按照测试的信息复制修改即可,另一种是通过DevEco Studio IDE进行手动配置。
复制修改
在项目build-profile.json5文件中,我们把原来测试自动生成的签名信息手动复制一份,name修改为自己定义的名字,比如release,还有一点需要知道,signingConfigs之前说过,可以支持多份签名。
配置信息按照如下介绍设置即可:
配置代码如下:
"signingConfigs": [
{
"name": "default",
"type": "HarmonyOS",
"material": {
"certpath": "/Users/abnerming/.ohos/config/default_Demo_Pnrx-7lyKAHsQo3AwkM12-Ly-9b8r6LaO9FjyL_MswI=.cer",
"storePassword": "0000001BC250F17B8DE65303700FBC807E84FB5489DA865BE094F95F1E7EADFE376F3586EB3AC142AB5E16",
"keyAlias": "debugKey",
"keyPassword": "0000001B5FEB0A1139B5C3D5CE59B37B9EB9100D28643C42ED6898619BCD4BEA36A821A666FC9AB0966217",
"profile": "/Users/abnerming/.ohos/config/default_Demo_Pnrx-7lyKAHsQo3AwkM12-Ly-9b8r6LaO9FjyL_MswI=.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "/Users/abnerming/.ohos/config/default_Demo_Pnrx-7lyKAHsQo3AwkM12-Ly-9b8r6LaO9FjyL_MswI=.p12"
}
},
{
"name": "release",
"type": "HarmonyOS",
"material": {
"storePassword": "00000018809D89A280116CD33A65E5D4F36AE7AFF512EFFB8AC497C2B63719E06B67A80A746C9F26",
"certpath": "/Users/abnerming/harmony/test/abner.cer",
"keyAlias": "abner",
"keyPassword": "00000018AB533C6359E2D430AF157ECCF736C800A54A66C82DDEA4357942EBAAB66A84CC4D72A952",
"profile": "/Users/abnerming/harmony/test/abner.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "/Users/abnerming/harmony/test/abner.p12"
}
}
]
具体的相关字段,大家可以按照表中介绍一一对应填写。
项目配置手动选择
以上手动复制代码修改,大家可以看到,有两项storePassword和keyPassword都是以密文的形式配置的,还得需要自己手动进行把明文密码更改为密文,加密方式也需要自行摸索,十分的不便,莫慌,项目配置手动选择一项,可以解决我们的痛点,点击项目配置,选择Signing Configs选项,点击“+”选项。
输入您的签名方案名字:
点击ok之后,把Automatically generate signature选项取消掉,就可以手动进行填写了,所有的信息,都是前边两篇文章中生成的,这些信息很重要,请一定要保管好。
配置好之后,我们可以发现,会自动在项目build-profile.json5文件中生成一份配置好的签名信息,当然了也包含了已经转换后的密文信息。
配置产品品类信息
以上的签名信息配置好之后,我们怎么进行打包呢,毕竟我们现在有两套签名信息,一套是默认的default,一套是正式的release,如何选择,这就需要配置产品品类信息了,也就是build-profile.json5中的products字段。
如果没有别的信息配置,我们直接把default复制一份即可,name和signingConfig修改为我们签名信息对应的即可。
"products": [
{
"name": "default",
"signingConfig": "default",
"compatibleSdkVersion": "5.0.0(12)",
"runtimeOS": "HarmonyOS",
"buildOption": {
"strictMode": {
"caseSensitiveCheck": true,
"useNormalizedOHMUrl": true
}
}
},
{
"name": "release",
"signingConfig": "release",
"compatibleSdkVersion": "5.0.0(12)",
"runtimeOS": "HarmonyOS",
"buildOption": {
"strictMode": {
"caseSensitiveCheck": true,
"useNormalizedOHMUrl": true
}
}
}
]
由于出包,需要针对每个模块进行签名打包,所以,在配置好了产品品类信息之后,我们就需要给各个模块加上我们的品类,一定要记住,每个都需要加,当然了,HAR模块无需配置。
如entry模块中的applyToProducts,我这里把新的产品加上了。
{
"name": "entry",
"srcPath": "./entry",
"targets": [
{
"name": "default",
"applyToProducts": [
"default",
"release"
]
}
]
}
以上的信息配置好之后,我们点击模块左侧的图标,就可以切换产品品类了。
想打正式包,直接选择配置好的正式签名即可。
出包
所有的信息配置好之后,那么打包就是最简单的,直接点击顶部的导航栏中Build->Build Hap(s)/APP(s)->Build App(s)。
点击之后,经过一段时间的编译,就会在项目中生成一个build文件夹,找到对应的签名信息文件,里面的带有signed字段的就是打出的签名包。
后续,往应用商店上架,传的就是这个签名包。
本文标签:HarmonyOS应用上架。