OpenHarmony应用开发—配置OpenHarmony应用签名信息

OpenHarmony应用开发—配置OpenHarmony应用签名信息

​想了解更多内容,请访问:​

​51CTO和华为官方合作共建的鸿蒙技术社区​

​https://ost.51cto.com​

开发OpenHarmony应用的第一步就是配置环境,如果你需要使用开发板(真机)进行调试,那就免不了配置签名信息,下面我们聊下基于OpenHarmony应用开发的签名配置。

一、流程

OpenHarmony应用的第一步就是配置环境,签名流程。使用真机设备运行和调试OpenHarmony应用前,需要对应用进行签名才能正常运行。配置应用签名信息的流程如下图所示。

OpenHarmony应用开发—配置OpenHarmony应用签名信息

配置签名认证时需要密钥文件(.p12文件)和证书请求文件(.csr文件),并根据密钥和证书请求文件生成数字证书(.cer文件)和Profile文件(.p7b文件),Profile文件是用来保证应用的完整性。

二、如何生成应用签名

2.1、生成密钥和证书请求文件

说明:通过DevEco Studio生成生成密钥和证书请求文件

在主菜单栏点击Build > Generate Keyand CSR。

创建Key Store File

OpenHarmony应用开发—配置OpenHarmony应用签名信息

签名文件其他配置

OpenHarmony应用开发—配置OpenHarmony应用签名信息

认证请求文件

OpenHarmony应用开发—配置OpenHarmony应用签名信息

点击“Finish”后可以生成认证请求文件,可以查看对应的文件夹,如下图:

OpenHarmony应用开发—配置OpenHarmony应用签名信息

使用命令行工具生成应用证书文件

使用生成密钥和证书请求文件中生成的证书请求文件,来生成应用签名所需的数字证书文件。生成方法如下:

进入DevEco Studio安装目录.SDKtoolchainslib,执行以下命令:

keytool -gencert -alias "OpenHarmony Application CA" -infile myApplication_ohos.csr -outfile myApplication_ohos.cer -keystore OpenHarmony.p12 -sigalg SHA384withECDSA -storepass 123456 -ext KeyUsage:"critical=digitalSignature" -validity  3650 -rfc

其中,只需要修改输入和输出即可快速生成证书文件,即修改-infile指定证书请求文件csr文件路径,-outfile指定输出证书文件名及路径。

关于该命令的参数说明如下:

  • alias:用于签发证书的CA私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。
  • infile:证书请求(CSR)文件的路径。
  • outfile:输出证书链文件名及路径。
  • keystore:签发证书的CA密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中Sdktoolchainslib路径下,该参数不能修改。请注意,该OpenHarmony.p12文件并不是生成密钥和证书请求文件中生成的.p12文件。
  • sigalg:证书签名算法,该参数不能修改。
  • storepass:密钥库密钥,密钥为123456,该参数不能修改。
  • ext:证书扩展项,该参数不能修改。
  • validity:证书有效期,自定义天数,命令中设置了3650天。
  • rfc:输出文件格式指定,该参数不能修改。

你可能遇到下面的问题。

问题1:keystore OpenHarmony.p12在Sdktoolchainslib下没有对应的文件?

OpenHarmony应用开发—配置OpenHarmony应用签名信息

问题分析:OpenHarmony SDK与HarmonyOS SDK不同,你确认在DevEco Studio的Settings中是否把两个SDK的目录配置为相同,建议配置成不同的路径,用于下载或更新SDK。

OpenHarmony应用开发—配置OpenHarmony应用签名信息

解决方案1:OpenHarmony SDK、HarmonyOS SDK存放到不同的目录下,再下载和更新SDK。查看两个SDKtoolchainslib下的文件区别,如下:

OpenHarmony应用开发—配置OpenHarmony应用签名信息

解决方案2:不推荐,手动下载OpenHarmony SDK,解压相关的文件(OpenHarmony.p12)到指定目录(Sdktoolchainslib)下即可

查看解决方案:配置OpenHarmony应用签名信息里的几个文件没有

SDK-2.0-Cancry下载地址

重新执行生成证书文件命令,如下:

OpenHarmony应用开发—配置OpenHarmony应用签名信息

生成应用Profile文件

Profile文件包含OpenHarmony应用的包名、数字证书信息、描述应用允许申请的证书权限列表,以及允许应用调试的设备列表(如果应用类型为Release类型,则设备列表为空)等内容,每个应用包中均必须包含一个Profile文件。

进入Sdktoolchainslib目录下,打开命令行工具,执行如下命令。

java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --out OH_App_debug.p7b --keystore OpenHarmony.p12 --storepass 123456 --alias "OpenHarmony Application Profile Release" --sigAlg SHA256withECDSA --cert OpenHarmonyProfileRelease.pem --validity 365 --developer-id xxx --bundle-name xxx.myAppDemo --permission ohos.permission.READ_CONTACTS --permission ohos.permission.WRITE_CONTACTS --distribution-certificate xxxapp_debug.cer

参数说明:

  • provisionsigtool:Profile文件生成工具,文件在OpenHarmony SDK的Sdktoolchainslib路径下。
  • in:Profile模板文件所在路径,文件在OpenHarmony SDK中Sdktoolchainslib路径下,该参数不能修改。
  • out:输出的Profile文件名和路径。
  • keystore:签发证书的密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中Sdktoolchainslib路径下,该参数不能修改。
  • storepass:密钥库密钥,密钥为123456,该参数不能修改。
  • alias:用于签名Profile私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。
  • sigalg:证书签名算法,该参数不能修改。
  • cert:签名Profile的证书文件路径,文件在OpenHarmony SDK中Sdktoolchainslib路径下,该参数不能修改。
  • validity:证书有效期,自定义天数。
  • developer-id:开发者标识符,自定义一个字符串。
  • bundle-name:填写应用包名。
  • permission:可选字段,如果不需要,则可以不用填写此字段;如果需要添加多个受限权限,则如示例所示重复输入。受限权限列表如下:ohos.permission.READ_CONTACTS、ohos.permission.WRITE_CONTACTS。
  • distribution-certificate:生成应用证书文件中生成的证书文件。

执行命令后,就可以生成应用Profile文件,如下:

OpenHarmony应用开发—配置OpenHarmony应用签名信息

三、真机调试

接下去我们可以拿真机进行调试,在真机设备上调试前,需要使用制作的私钥(.p12)文件、证书(.cer)文件和Profile(.p7b)文件对调试的模块进行签名。

3.1、配置签名

在DevEco Studio的菜单上打开File > Project Structure,点击Project > Signing Configs > debug窗口中,去除勾选“Automatically generate signing”,然后配置指定模块的调试签名信息。

  • Store File:选择密钥库文件,文件后缀为.p12,该文件为生成密钥和证书请求文件中生成的.p12文件。
  • Store Password:输入密钥库密钥,该密钥为生成密钥和证书请求文件中填写的密钥库密钥保持一致。
  • Key Alias:输入密钥的别名信息,与生成密钥和证书请求文件中填写的别名保持一致。
  • Key Password:输入密钥的密钥,与Store Password保持一致。
  • Sign Alg:签名算法,固定为SHA256withECDSA。
  • Profile File:选择生成应用Profile文件中生成的Profile文件,文件后缀为.p7b。
  • Certpath File:选择生成应用证书文件中生成的数字证书文件,文件后缀为.cer。

OpenHarmony应用开发—配置OpenHarmony应用签名信息

设置签名信息后,点击“OK”进行保存,然后可以在工程build.gradle中查看签名的配置信息。

OpenHarmony应用开发—配置OpenHarmony应用签名信息

3.2、编译打包APP

配置签名后,可以通过Build->Build Hap(s)/APP(s)->Build Hap(s),编译完成后,OpenHarmony应用的Hap包可以从工程的bulid目录下获取.如下:

OpenHarmony应用开发—配置OpenHarmony应用签名信息

​想了解更多内容,请访问:​

​51CTO和华为官方合作共建的鸿蒙技术社区​

​https://ost.51cto.com​

OpenHarmony应用开发—配置OpenHarmony应用签名信息

文章版权声明

 1 原创文章作者:下一站、、、、,如若转载,请注明出处: https://www.52hwl.com/93902.html

 2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈

 3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)

 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年1月16日 下午9:58
下一篇 2024年1月16日 下午9:58