HarmonyOS 鸿蒙开发DevEco Studio:应用/服务发布

目录

发布流程

准备签名文件

生成密钥和证书请求文件

申请发布证书和Profile文件

配置签名信息

编译构建APP

上架App到AGC


HarmonyOS通过数字证书与Profile文件等签名信息来保证应用/服务的完整性,应用/服务上架到AppGallery Connect必须通过签名校验。因此,您需要使用发布证书和Profile文件对应用/服务进行签名后才能发布。

应用/服务发布到AppGallery Connect后,会将应用分发至应用市场,将服务分发至服务中心。消费者便可以通过终端设备上的应用市场App获取HarmonyOS应用,通过服务中心获取原子化服务。

发布流程

开发者完成HarmonyOS应用/服务开发后,需要将应用/服务打包成APP,用于发布到华为应用市场。发布应用/服务的流程如下图所示:

关于以上流程的详细介绍,请继续查阅本章节内容。

准备签名文件

生成密钥和证书请求文件

HarmonyOS应用/服务通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用/服务的完整性,数字证书和Profile文件可通过申请发布证书和Profile文件
获取。

申请数字证书和Profile文件前,首先需要通过DevEco Studio来生成密钥(存储在格式为.p12的密钥库文件中)和证书请求文件(.csr文件)。同时,也可以使用命令行工具的方式来生成密钥文件和证书请求文件。

基本概念

  • 密钥:包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,格式为.p12,公钥和私钥对用于数字签名和验证。
  • 证书请求文件:格式为.csr,全称为Certificate Signing Request,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向AppGallery Connect申请数字证书。
  • 数字证书:格式为.cer,由华为AppGallery Connect颁发。
  • Profile文件:格式为.p7b,包含HarmonyOS应用/服务的包名、数字证书信息、描述应用/服务允许申请的证书权限列表,以及允许应用/服务调试的设备列表(如果应用/服务类型为Release类型,则设备列表为空)等内容,每个应用/服务包中均必须包含一个Profile文件。

使用DevEco Studio生成密钥和证书请求文件

  1. 在主菜单栏单击Build > Generate Key and CSR

    说明

    如果本地已有对应的密钥,无需新生成密钥,可以在Generate Key界面中单击下方的Skip跳过密钥生成过程,直接使用已有密钥生成证书请求文件。

  2. Key Store File中,可以单击Choose Existing选择已有的密钥库文件(存储有密钥的.p12文件);如果没有密钥库文件,单击New进行创建。下面以新创建密钥库文件为例进行说明。

  3. Create Key Store窗口中,填写密钥库信息后,单击OK
    • Key Store File:设置密钥库文件存储路径,并填写p12文件名。
    • Password:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。
    • Confirm Password:再次输入密钥库密码。

  4. Generate Key and CSR界面中,继续填写密钥信息后,单击Next
    • Alias:密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。
    • Password:密钥对应的密码,与密钥库密码保持一致,无需手动输入。
    • Validity:证书有效期,建议设置为25年及以上,覆盖应用/服务的完整生命周期。
    • Certificate:输入证书基本信息,如组织、城市或地区、国家码等。

  5. Generate Key and CSR界面,设置CSR文件存储路径和CSR文件名。

  6. 单击OK按钮,创建CSR文件成功,可以在存储路径下获取生成的密钥库文件(.p12)和证书请求文件(.csr)。

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

使用Open JDK携带的Keytool工具生成证书请求文件。

  1. 使用管理员身份运行命令行工具。

  2. 切换到keytool工具所在路径,实际路径请根据安装目录进行修改。

  3. 执行如下命令,生成公私钥文件。例如,生成的密钥库名称为ide_demo_app.p12,存储到D盘根目录下。
    
    
    1. keytool -genkeypair -alias "ide_demo_app" -keyalg EC -sigalg SHA256withECDSA -dname "C=CN,O=HUAWEI,OU=HUAWEI IDE,CN=ide_demo_app" -keystore d:\idedemokey.p12 -storetype pkcs12 -validity 9125 -storepass 123456Abc -keypass 123456Abc

    生成公私钥文件的参数说明如下:

    说明

    请记录下alias、storepasskeypass的值,在后续配置签名信息
    操作会使用到。

    • alias:密钥的别名信息,用于标识密钥名称。
    • sigalg:签名算法,固定为SHA256withECDSA
    • dname:按照操作界面提示进行输入。
      • C:国家/地区代码,如CN。
      • O:组织名称,如HUAWEI。
      • OU:组织单位名称,如HUAWEI IDE。
      • CN:名字与姓氏,建议与别名一致。
    • validity:证书有效期,建议设置为9125(25年)。
    • storepass:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。
    • keypass:设置密钥的密码,请与storepass保持一致。
  4. 执行如下命令,执行后需要输入storepass密码,生成证书请求文件,后缀格式为.csr。
    
    
    1. keytool -certreq -alias "ide_demo_app" -keystore d:\idedemokey.p12 -storetype pkcs12 -file d:\idedemokey.csr

    生成证书请求文件的参数说明如下:

    • alias:与3中输入的alias保持一致。
    • file:生成的证书请求文件名称,后缀为.csr。

申请发布证书和Profile文件

通过生成的证书请求文件,向AppGallery Connect申请发布证书和Profile文件,操作如下。

  • 创建HarmonyOS应用/服务:在AppGallery Connect项目中,创建一个HarmonyOS应用/服务,用于发布证书和Profile文件申请,具体请参考创建HarmonyOS应用

    说明

    在应用/服务分发阶段,HarmonyOS应用将被分发至应用市场,原子化服务将会被分发至服务中心。因此,如果申请原子化服务的签名证书,在“创建应用”操作时,“是否原子化服务”选项请选择“”。

  • 申请发布证书和Profile文件:在AppGallery Connect中申请、下载发布证书和Profile文件,具体请参考申请发布证书和Profile文件

用于发布的证书和Profile文件申请完成后,请在DevEco Studio中进行签名,请参考配置签名信息

配置签名信息

使用制作的私钥(.p12)文件、在AppGallery Connect中申请的证书(.cer)文件和Profile(.p7b)文件,在DevEco Studio配置工程的签名信息,构建携带发布签名信息的APP。

File > Project Structure > Project > Signing Configs > default界面中,取消“Automatically generate signature”勾选项,然后配置工程的签名信息。

说明

若是API Version 4至7的工程,请在Signing Configs界面,选择Release,然后配置签名信息。

  • Store File:选择密钥库文件,文件后缀为.p12。
  • Store Password:输入密钥库密码。
  • Key Alias:输入密钥的别名信息。
  • Key Password:输入密钥的密码。
  • Sign Alg:签名算法,固定为SHA256withECDSA。
  • Profile File:选择申请的发布Profile文件,文件后缀为.p7b。
  • Certpath File:选择申请的发布数字证书文件,文件后缀为.cer。

设置完签名信息后,单击OK进行保存,然后使用DevEco Studio生成APP,请参考编译构建APP

编译构建APP

打包APP时,DevEco Studio会将工程目录下的所有HAP模块打包到APP中,因此,如果工程目录中存在不需要打包到APP的HAP模块,请手动删除后再进行编译构建生成APP。

  1. 单击Build > Build Hap(s)/APP(s) > Build APP(s),等待编译构建完成已签名的APP。
  2. 编译构建完成后,可以在工程目录build > outputs > app > release下,获取带签名的APP。

上架App到AGC

将HarmonyOS应用/服务打包成App后上架到AppGallery Connect,AppGallery Connect会将HarmonyOS应用至应用市场,将原子化服务分发至服务中心,上架详细操作指导请参考上架HarmonyOS应用/服务