
回复
【本文正在参加 2023「盲盒」+码有奖征文活动】 https://ost.51cto.com/posts/25284
@toc
很多刚开始学习OpenHarmony应用开发的小伙伴们,对于应用签名会比较迷惑,尤其是手动签名需要一些命令生成应用证书和对Profile签名等,虽然自动签名比较方便,但是如果开发一个应用长期维护,每次点击自动签名都会生成新的应用证书和与之对应绑定的p7b文件,更换签名会导致应用无法覆盖安装到设备
那有没有什么办法去完整的备份自动签名的应用证书和p7b等文件,方便在不同开发电脑上迁移和复用的呢,那本文就来分享具体操作步骤
C:\Users\%username%\.ohos\config\openharmony\
auto_ohos_default_MyApplication_com.example.myapplication.cer
auto_ohos_default_MyApplication_com.example.myapplication.csr
auto_ohos_default_MyApplication_com.example.myapplication.p7b
auto_ohos_default_MyApplication_com.example.myapplication.p12
build-profile.json5
内的签名配置"signingConfigs": [
{
"name": "default",
"material": {
"certpath": "C:\\Users\\你的用户名\\.ohos\\config\\openharmony\\auto_ohos_default_MyApplication_com.example.myapplication.cer",
"storePassword": "0000001B204EDA07025D59FE9EFDDFA040D877AD866799056701B052707F70535CE6B25F25D364F9D29E5C",
"keyAlias": "debugKey",
"keyPassword": "0000001BAF30CE7A0F9510F6569BD832945EB61417B6F369F28C5965CA8F9D7856C9162C240A53DA6C0D82",
"profile": "C:\\Users\\你的用户名\\.ohos\\config\\openharmony\\auto_ohos_default_MyApplication_com.example.myapplication.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "C:\\Users\\你的用户名\\.ohos\\config\\openharmony\\auto_ohos_default_MyApplication_com.example.myapplication.p12"
}
}
],
C:\Users\%username%\.ohos\config\openharmony\material
也需要备份下signature
"signingConfigs": [
{
"name": "default",
"material": {
"certpath": "./signature/auto_ohos_default_MyApplication_com.example.myapplication.cer",
"storePassword": "0000001B204EDA07025D59FE9EFDDFA040D877AD866799056701B052707F70535CE6B25F25D364F9D29E5C",
"keyAlias": "debugKey",
"keyPassword": "0000001BAF30CE7A0F9510F6569BD832945EB61417B6F369F28C5965CA8F9D7856C9162C240A53DA6C0D82",
"profile": "./signature/auto_ohos_default_MyApplication_com.example.myapplication.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "./signature/auto_ohos_default_MyApplication_com.example.myapplication.p12"
}
}
],
如果后续应用所申请的权限超出了之前自动签名生成的p7b文件约束,那我们需要再次修改Profile控制访问权限,其实可以在不更换之前生成的证书的同时,只对Profile单独签名生成p7b进行应用的提权,具体操作可以参考我往期的这篇文章:https://ost.51cto.com/posts/25038
其中最关键的一点就是把原有应用证书中第一段用\n连成一行填写在Profile中的distribution-certificate配置中,这样生成的p7b文件才是与之前的应用证书关联的有效的