更多信息请访问:与华为官方共建的鸿蒙技术社区https://ost.51cto.com开发一个OpenHarmony的第一步OpenHarmony应用是配置环境。如果需要使用开发板(真机)进行调试,则必须配置签名信息。下面说一下基于OpenHarmony应用开发的签名配置。1.流程OpenHarmony应用的第一步是配置环境和签署流程。在使用真实设备运行和调试OpenHarmony应用程序之前,需要对应用程序进行签名才能正常运行。配置应用程序签名信息的流程如下图所示。配置签名认证时,需要密钥文件(.p12文件)和证书申请文件(.csr文件),根据密钥生成数字证书(.cer文件)和Profile文件(.p7b文件)证书请求文件。配置文件用于保证应用程序的完整性。2.如何生成应用签名2.1.生成密钥和证书请求文件说明:通过DevEcoStudio生成密钥和证书请求文件。单击主菜单栏上的构建>生成密钥和CSR。创建KeyStoreFile签名文件其他配置认证请求文件点击“完成”生成认证请求文件,可以查看对应文件夹,如下图:使用命令行工具生成应用证书文件使用Thegeneratedkeyandcertificaterequestfiletogenerate生成应用程序签名所需的数字证书文件的证书请求文件。生成方法如下:进入DevEcoStudio安装目录.\SDK\toolchains\lib,执行以下命令:keytool-gencert-alias"OpenHarmonyApplicationCA"-infilemyApplication_ohos.csr-outfilemyApplication_ohos.cer-keystoreOpenHarmony.p12-sigalgSHA384withECDSA-storepass123456-extKeyUsage:"critical=digitalSignature"-validity3650-rfc其中只需要修改输入输出即可快速生成证书文件,即修改-infile指定证书请求文件csr文件路径,-outfile指定输出证书文件名和路径。该命令的参数说明如下:alias:用于颁发证书的CA私钥的别名。OpenHarmony社区CA私钥保存在OpenHarmony.p12keystore文件中,该参数不可修改。infile:证书请求(CSR)文件的路径。outfile:输出证书链文件名和路径。keystore:颁发证书的CAkeystore的路径。OpenHarmony密钥库文件名为OpenHarmony.p12。该文件位于OpenHarmonySDK的Sdk\toolchains\lib路径下。该参数不能修改。请注意,OpenHarmony.p12文件不是生成密钥和证书请求文件中生成的.p12文件。sigalg:证书签名算法,该参数不可修改。storepass:keystore密钥,密钥为123456,该参数不可修改。ext:证书扩展名,该参数不可修改。validity:证书的有效期,天数可以自定义,3650天在命令中设置。rfc:指定输出文件格式,该参数不可修改。您可能会遇到以下问题。问题一:Sdk\toolchains\lib下没有keystoreOpenHarmony.p12对应的文件?问题分析:OpenHarmonySDK与HarmonyOSSDK不同。确认在DevEcoStudio的Settings中两个SDK的目录是否配置相同?建议配置成不同路径下载或更新SDK。方案一:将OpenHarmonySDK和HarmonyOSSDK存放在不同的目录下,然后下载更新SDK。查看两个SDK\toolchains\lib下文件的区别,如下:方案二:不推荐,手动下载OpenHarmonySDK,将相关文件(OpenHarmony.p12)解压到指定目录(Sdk\toolchains\lib)查看解决办法:在OpenHarmony应用签名信息中配置几个文件没有SDK-2.0-Cancry的下载地址重新执行命令生成证书文件,如下:生成应用配置文件配置文件包含包名,数字证书信息、OpenHarmony应用说明每个应用包必须包含请求的证书颁发机构列表的profile文件,以及允许应用调试的设备列表(如果应用类型为Release类型,则设备列表为空)。进入Sdk\toolchains\lib目录,打开命令行工具,执行以下命令。java-jarprovisionsigtool.jarsign--inUnsgnedReleasedProfileTemplate.json--outOH_App_debug.p7b--keystoreOpenHarmony.p12--storepass123456--alias"OpenHarmonyApplicationProfileRelease"--sigAlgSHA256withECDSA--certOpenHarmonyProfileRelease.pem--validity365--developer-idxxx--bundle-namexxx.myAppDemo--permissionohos.permission.READ_CONTACTS--permissionohos.permission.WRITE_CONTACTS--distribution-certificatexxx\app_debug.cer参数说明:provisionsigtool:Profilefilegeneration工具和文件在OpenHarmonySDK的Sdk\toolchains\lib路径下。in:Profile模板文件所在路径。该文件在OpenHarmonySDK中的Sdk\toolchains\lib路径下。该参数不能修改。out:输出配置文件的文件名和路径。keystore:颁发证书的keystore路径。OpenHarmony密钥库文件名为OpenHarmony.p12。该文件在OpenHarmonySDK的Sdk\toolchains\lib路径下。该参数不能修改。storepass:keystore密钥,密钥为123456,该参数不可修改。alias:用于签署profile私钥别名,OpenHarmony社区CA私钥保存在OpenHarmony.p12keystore文件中,该参数不可修改。sigalg:证书签名算法,该参数不可修改。cert:签名配置文件的证书文件路径。该文件在OpenHarmonySDK中的Sdk\toolchains\lib路径下。该参数不能修改。validity:证书的有效期,天数可以自定义。developer-id:开发者标识符,自定义字符串。bundle-name:填写应用包名。权限:可选字段,如果不需要,可以将此字段留空;如果您需要添加多个受限权限,请按照示例所示重复输入。限制权限列表如下:ohos.permission.READ_CONTACTS,ohos.permission.WRITE_CONTACTS。distribution-certificate:生成ApplicationCertificateFile中生成的证书文件。执行命令后,可以生成应用配置文件,如下:3.真机调试接下来,我们就可以使用真机进行调试了。在真机调试之前,我们需要使用私钥(.p12)文件和证书(.cer)文件以及Profile(.p7b)文件对被调试模块进行签名。3.1.配置签名打开DevEcoStudio菜单中的File>ProjectStructure,点击Project>SigningConfigs>debugwindow,取消勾选“Automaticallygeneratesigning”,然后配置指定模块的调试签名信息。StoreFile:选择密钥存储文件,文件后缀为.p12,即GenerateKeyandCertificateRequestFile中生成的.p12文件。StorePassword:输入keystorekey,与生成密钥和证书申请文件中填写的keystorekey一致。密钥别名:填写密钥的别名信息,与生成的密钥和证书申请文件填写的别名一致。密钥密码:输入密钥的密钥,与存储密码一致。SignAlg:签名算法,固定为SHA256withECDSA。ProfileFile:选择GenerateApplicationProfileFile中生成的profile文件,文件后缀为.p7b。CertpathFile:选择GenerateApplicationCertificateFile中生成的数字证书文件,文件后缀为.cer。签名信息设置完成后点击“确定”保存,即可在项目build.gradle中查看签名配置信息。3.2.APP配置签名编译打包后,可以到Build->BuildHap(s)/APP(s)->BuildHap(s)。编译完成后,可以在项目的bulid目录下获取OpenHarmony应用的Hap包。如下:更多内容请访问:与华为官方共建的鸿蒙技术社区https://ost.51cto.com
