阅读(4002)
赞(9)
鸿蒙OS 编译构建生成HAP
2020-09-17 11:15:10 更新
HAP 可以直接在模拟器或者真机设备上运行,用于 HarmonyOS 应用开发阶段的调试和查看运行效果。HAP 按构建类型和是否签名可以分为以下四种形态:
- 构建类型为 Debug 的 HAP (带调试签名信息):携带调试签名信息,具备单步调试等调试手段的 HAP,用于开发者在真机或者模拟器中进行应用调试。
- 构建类型为 Debug 的 HAP (不带签名):不带调试签名信息,具备单步调试等调试手段的 HAP,仅能运行在模拟器中。
- 构建类型为 Release 的 HAP(带调试签名信息):携带调试签名信息,不具备调试能力的 HAP,用于开发者在真机或者模拟器中查看和验证应用运行效果。相对于 Debug 类型的 HAP 包,体积更小,运行效果与用户实际体验一致。
- 构建类型为 Release 的 HAP(不带签名):不带调试签名信息,不具备调试能力的 HAP,仅能运行在模拟器中查看和验证应用运行效果。相对于 Debug 类型的 HAP 包,体积更小,运行效果与用户实际体验一致。
根据 HarmonyOS 工程介绍,一个 HarmonyOS 工程下可以存在多个 Module,在编译构建时,可以选择对单个 Module 进行编译构建;也可以对整个工程进行编译构建,同时生成多个 HAP。
前提条件
- 已完成 build.gradle和config.json 的设置,详情请参考编译构建前配置。
- 已完成调试证书和 Profile 文件的申请,详情请参考申请证书和 Profile。
构建类型为 Debug 的 HAP(带调试签名信息)
如果一个工程目录下存在多个 Module,当对单个 Module 进行构建时,只需要对指定的 Module 进行签名;如果对整个工程进行构建,则需要对所有的 Module 进行签名。
- 打开 File>Project Structure,在 Modules>entry(模块名称)>Signing Configs > debug 窗口中,配置指定模块的调试签名信息。
- Store File:选择密钥库文件,文件后缀为 .p12。
- Store Password:输入密钥库密码。
- Key Alias:输入密钥的别名信息。
- Key Password:输入密钥的密码。
- SignAlg:签名算法,固定为 SHA256withECDSA。
- Profile File:选择申请的调试 Profile 文件,文件后缀为 .p7b。
- Certpath File:选择申请的调试数字证书文件,文件后缀为 .cer。
- 在主菜单栏,点击 Build > Build APP(s)/Hap(s) > Build Debug Hap(s),生成已签名的 Debug HAP。
构建类型为 Debug 的 HAP(不带签名)
对于构建类型为 Debug 的 HAP,如果没有配置签名参数,则默认不对 HAP 进行签名,该方式生成的 HAP 仅能运行在模拟器上。
在主菜单栏,点击 Build > Build APP(s)/Hap(s) > Build Debug Hap(s),生成不带签名的调试 Debug HAP。
构建类型为 Release 的 HAP(带调试签名信息)
如果一个工程目录下存在多个 Module,当对单个 Module 进行构建时,只需要对指定的 Module 进行签名;如果对整个工程进行构建,则需要对所有的 Module 进行签名。
- 打开 File>Project Structure,在 Modules>entry(模块名称)>Signing Configs > release 窗口中 ,配置指定模块的调试签名信息。
- Store File:选择密钥库文件,文件后缀为 .p12。
- Store Password:输入密钥库密码。
- Key Alias:输入密钥的别名信息。
- Key Password:输入密钥的密码。
- SignAlg:签名算法,固定为 SHA256withECDSA。
- Profile File:选择申请的调试 Profile 文件,文件后缀为 .p7b。
- Certpath File:选择申请的调试数字证书文件,文件后缀为 .cer。
- 在主菜单栏,点击 Build > Build APP(s)/Hap(s) > Build Release Hap(s),生成已签名的 Release HAP。
构建类型为 Release 的 HAP(不带签名)
对于构建类型为 Release 的 HAP,如果没有配置签名参数,则默认不对 HAP 进行签名,该方式生成的 HAP 仅能运行在模拟器上。
在主菜单栏,点击 Build > Build APP(s)/Hap(s) > Build Release Hap(s),生成不带签名的调试 Release HAP。