【HarmonyOS】hap包在多台设备中安装和HarmonyOS应用含多个module安装问题
在HarmonyOS应用开发过程中,大家会遇到一些hap安装问题,如多模块hap包存在调用如何在模拟器上统一运行、或者同一hap包如何在多台设备运行问题等,这里汇总一些hap安装问题解答,供大家参考。
【问题1】我的HarmonyOS工程创建了多个module,构建出的.app包,如何在模拟器上安装?
.app包是由一个或多个HAP以及描述每个HAP属性的pack.info组成,模拟器无法通过命令方式安装.app包,需要使用DevEco Studio打开HarmonyOS工程后,直接运行安装。
此外,若您的应用只有一个module,连接模拟器后,直接运行安装即可;若您的应用创建多个module,需要同事安装多个模块的hap包到设备中,您可参考下方步骤配置后,再重新运行项目
步骤1:使用3.1.0.400及以上版本DevEco Studio,打开项目工程;
步骤2:单击Run > Edit Configurations,在Deploy Multi Hap中,勾选Deploy Multi Hap Packages,选择多个模块。
注意:低版本IDE此处勾选项置灰,表示低版本尚不支持此功能,您可下载最新版IDE:
https://developer.harmonyos.com/cn/develop/deveco-studio/archive/
步骤3:完成勾选配置后,连接模拟器,重新运行即可。
参考文档:
【问题2】如何可以让同一个hap包支持在多部手机设备成功安装?为什么我的hap包在另外一台手机上安装失败?
若您的应用暂不需要在开发者联盟中发布上架,仅用于HarmonyOS开发学习,您可采取自动签名方案,自动签名步骤参考如下文档:https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/signing-0000001587684945-V3#section18815157237;自动签名方式不需要再AGC上申请应用,不需给您的应用创建appid。注意:一个帐号最多可申请两个调试证书,您需要至少预留一个调试证书位置才可自动签名成功,若您自动签名失败,请检查您的帐号中“证书管理”是否已申请了两个调试证书。
若您的应用已在AGC上申请应用,需要使用手动签名方式,将应用appid与签名信息关联,在发布HarmonyOS应用前,建议您在本地进行调试,您需要提前申请相应的调试证书与调试Profile给HAP进行签名后,才可安装到设备上运行。若您想要同意hap包在多台设备中安装运行,您需要将多台设备UDID添加到“设备管理”中,请参考下方步骤4。
1)生成密钥和证书请求文件。首先您需要生成密钥和证书请求文件,您可通过“使用DevEco Studio生成密钥和证书请求文件”和“使用命令行工具生成证书请求文件”两种方式,这两种方式操作步骤参考文档:https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/signing-0000001587684945-V3#section462703710326。完成此步骤后,我们已经生成签名所需要的.p12和.csr文件了。
2)创建HarmonyOS应用。您需要在AGC上创建HarmonyOS应用,创建步骤参考文档:
3)申请调试证书。第一步我们已经生成证书请求文件,即CSR文件,您需要使用此文件在AGC上申请调试证书,操作步骤参考文档:https://developer.huawei.com/consumer/cn/doc/distribution/app/agc-help-harmonyos-debugapp-manual-0000001177608893?ha_linker=eyJ0cyI6MTY4NTA3MDg1NTA4MCwiaWQiOiJhNmU4MjgyNTk2ZjgzNTBlOTY5NDRiYmIwNmRmZWE5NiJ9#section5743184463916。完成后您需要点击“下载”,下载证书即可,下载成功您便得到数字证书.cer文件;注意此证书有有效期,若您安装应用失败提示签名错误,请检查此证书是否过期,过期后可废除重新申请下载即可。
4)注册调试设备。若您想要在多个设备中运行您的HarmonyOS应用,此步骤就比较关键了。您需要在AGC的“设备管理”中添加所有调试设备的UDID,添加步骤请参考文档:
https://developer.huawei.com/consumer/cn/doc/distribution/app/agc-help-harmonyos-debugapp-manual-0000001177608893?ha_linker=eyJ0cyI6MTY4NTA3MDg1NTA4MCwiaWQiOiJhNmU4MjgyNTk2ZjgzNTBlOTY5NDRiYmIwNmRmZWE5NiJ9#section321193116427。注意若在调试阶段需要一个hap在多台设备中运行,需要将所有设备的UDID都添加到设备管理中,然后申请调试Profile时选择所有设备的UDID即可。
5)申请调试Profile,即申请.p7b Profile文件。完成前面步骤后,您可选择证书和设备UDID,申请调试Profile文件,申请成功后,您可下载Profile文件,即.p7b文件,操作步骤参考文档:
6)运行HarmonyOS应用。到此,就已经完成所有手动签名文件的获取,您可在DevEco Studio中配置签名相关文件,操作步骤参考文档:
【知识拓展】
1、签名证书基本概念说明
HarmonyOS应用/服务通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用/服务的完整性,完成签名共需要四种类型的文件:.p12、.csr、.cer、.p7b这四种类型文件,下面对这四种类型文件进行基本概念说明。
- 密钥:包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,格式为.p12,公钥和私钥对用于数字签名和验证。
- 证书请求文件:格式为.csr,全称为Certificate Signing Request,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向AppGallery Connect申请数字证书。
- 数字证书:格式为.cer,由华为AppGallery Connect颁发。
- Profile文件:格式为.p7b,包含HarmonyOS应用/服务的包名、数字证书信息、描述应用/服务允许申请的证书权限列表,以及允许应用/服务调试的设备列表(如果应用/服务类型为Release类型,则设备列表为空)等内容,每个应用/服务包中均必须包含一个Profile文件。
参考文档:
2、UDID获取方法
参考文档:
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh