前言
为确保HarmonyOS应用的完整性,HarmonyOS通过数字证书和授权文件来对应用进行管控,只有签名过的HAP(编译产物,后面章节详细讲述,本章主要讲证书申请到代码运行到真机)才允许安装到设备上进行运行(如果不带签名信息,仅可以运行在模拟器中)。
正文
在申请数字证书和Profile文件前,需要通过DevEco Studio来生成私钥(存放在.p12文件中)和证书请求文件(.csr文件)。同时,也可以使用命令行工具的方式来生成密钥和证书请求文件,用于构筑工程流水线。以命令行为例:
1. 通过命令创建p12(jks) 文件
keytool -genkeypair -alias "xxxx" -keyalg EC -sigalg SHA256withECDSA -dname "C=CN,O=Huawei CBG,OU=HOS Development IDE Team,CN=xxxx" -keystore xxxx.p12 -storetype pkcs12 -storepass XXXXxxxx
2. 根据jks创建证书申请文件csr:
keytool -certreq -alias "xxxx" -keystore xxxx.jks -file xxxx.csr
注意:
Alias:密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。
storepass:密钥库密码,记住该密码,后面会用到
上面两条命令执行完成之后,我们会得到下面存放私钥的(.p12)和证书请求文件(.csr)两个文件
3. 创建项目
一个项目里面可以包含多个不同平台的安装包,例如手机应用和手表应用。。。。。。
点击“添加项目”。
项目创建完成,新增应用
例如创建项目:myohosproject,创建应用:myohosproject
4. 申请证书和profile
开通鸿蒙应用服务。
5. 通过csr文件在线申请调试证书cer
在左侧导航栏选择“证书管理”,进入证书管理页面,点击右上角的“添加证书”
6.注册调试设备
在左侧导航栏选择“设备管理”,进入设备管理页面,点击右上角的“添加设备”
注意:
注册调试设备 每次只能添加一个udid
udid获取:命令行执行adb shell dumpsys DdmpDeviceMonitorService 可以直接看到udid
7. 申请调试profile(p7b文件)
点击我的项目,点击该项目下您创建的HarmonyOS应用。
选择“鸿蒙应用 > Harmony Application”,进入“申请HarmonyAppProvision”页面,点击右上角“添加”,填写名称,类型勾选“调试”,选择证书及设备(该步点击文件选择时会自动弹出5、6步添加的证书及设备文件)。
完成以上7步后,我们可以得到以下几个文件
8. 配置debug调试签名
打开File>Project Structure,在Modules>entry(模块名称)>Signing Configs > debug窗口中,配置指定模块的调试签名信息。
在插件端设置完成后,我们可以在module的build.gradle中看到debug的签名配置,如下所示:
ohos {
signingConfigs {
debug {
storeFile file('/Users/shanxia/development/HarmonyOS/keystore/shanohosproject.p12')
storePassword 'XXXXxxxx'
keyAlias 'shanohosproject'
keyPassword 'XXXXxxxx'
signAlg 'SHA256withECDSA'
profile file('/Users/shanxia/development/HarmonyOS/keystore/shanohosprojectDebug.p7b')
certpath file('/Users/shanxia/development/HarmonyOS/keystore/shanohosproject.cer')
}
}
......
}
9. 最后一步,运行HelloWord
在菜单栏中,点击Run>Run'模块名称'或,或使用默认快捷键Shift+F10(Mac为Control+R)运行应用。
在弹出的界面,选择已连接的Phone设备,点击OK按钮。
DevEco Studio启动HAP的编译构建和安装。安装成功后,设备会自动运行安装的HarmonyOS应用。
注意:
申请证书和Profile文件时,用于调试和上架的证书与授权文件不能交叉使用
应用调试证书与应用调试Profile文件、应用发布证书与应用发布Profile文件具有匹配关系,必须成对使用,不可交叉使用。
应用调试证书与应用调试Profile文件必须应用于调试场景,用于发布场景将导致应用发布审核不通过;应用发布证书与应用发布Profile文件必须应用于发布场景,用于调试场景将导致应用无法安装。
大功告成,新世界的大门已经打开,接下来的系列文章我们将一起探索鸿蒙的魅力。