HarmonyOS应用如何打包HAP并安装到真机 精华

MrMrLi
发布于 2021-7-3 09:59
浏览
14收藏

@toc

写了一个HarmonyOS应用后最大的心愿就是把它安装到真机上,或发送给其他的小伙伴安装到真机上运行。想要在真机上运行,真的没有Android那么简单。难点主要体现在配置签名及安装上。

配置签名需要签名文件,而签名文件必须经过华为官网才能生成。签名区分调试签名与正式签名的,调试签名文件需要指定设备,即指定哪几个设备可以安装此签名的安装包;正式的签名文件不需要指定设备,但使用正式签名打出的安装包是不能直接安装到真机上的,这个会在后面的安装步骤介绍。而安装包也并不能在设备上直接点击安装。

下面可以看一下如何将HarmonyOS应用打包并安装到真机上。

一、配置签名

配置签名需要3个文件

xxxx.p12 密钥文件,可本地生成
xxxx.p7b HAP Provision Profile文件,需要从华为应用网站 创建并下载
xxxx.cer 数字证书,需要从华为应用网站 创建并下载

配置的代码如下

debug {
    storeFile file('xxxx.p12')
    storePassword '***'
    keyAlias = 'debugKey'
    keyPassword '****'
    signAlg = 'SHA256withECDSA'
    profile file('xxxx.p7b')
    certpath file('xxxx.cer')
}

1、通过DevEco自动配置签名

使用此种配置方式只能配置调试签名文件,且前提是要有一台HarmonyOS系统的设备连接到电脑。需要设备连接是因为调试签名文件需要指定设备。

a. 在AppGallery Connect 网站建项目

AppGallery Connect网站连接为:https://developer.huawei.com/consumer/cn/service/josp/agc/index.html 不用点击或复制链接进入网站,可根据使用真机调试文档的指引进入。如下图的红框1,点击进入即可
HarmonyOS应用如何打包HAP并安装到真机-鸿蒙开发者社区
这里需要特别注意,不能直接从“我的应用”图标进入,直接创建应用。从“我的应用”进入创建不了HarmonyOS应用。只能从“我的项目”进入,创建项目后再创建HarmonyOS应用。
HarmonyOS应用如何打包HAP并安装到真机-鸿蒙开发者社区

b. 在新建项目里创建HarmonyOS应用

创建HarmonyOS时选择项目左侧菜单的HarmonyOS应用进行创建,如下图
HarmonyOS应用如何打包HAP并安装到真机-鸿蒙开发者社区

c. 自动填充签名信息

完成以上两步可以再根据使用真机调试文档里的介绍进行处理即可。需要注意的是一定要在此界面勾选自动填充,即下图的“Automatically generate singing”选项,在网站创建应用后,回到此弹窗,点击下方的重试按钮或重新进入此页面,都会自动填充签名信息的。
HarmonyOS应用如何打包HAP并安装到真机-鸿蒙开发者社区

2、手动配置签名

手动配置主要有以下3步,具体的可参考应用发布文档,流程主要为以下4步

a. 创建密钥文件(.p12文件)和证书请求文件(.csr文件)

b. 申请证书文件(.cer文件)

c. 申请HAP Provision Profile文件(.p7b文件)

d. 手动配置签名信息

二、打包

使用gradle命令或直接在gradle面板执行打包任务即可。生成的hap文件位于build/outputs/hap/release/目录下。注意,这里示意的为打release包,若打发debug包,把release换成debug即可

1、使用gralde命令打包

./gradlew entry:assembleRelease

2、使用gradle面板打包

打开DevEco Studio右上方的gradle面板,选择assembleRelease,双击运行即可。
HarmonyOS应用如何打包HAP并安装到真机-鸿蒙开发者社区

三、安装

目前测试发现只能安装Debug包,且只能通过hdc命令进行安装。使用发布证书打包出来的release安装包,安装时会提示以下错误信息,也就是设备不信任你的安装包,即使你的证书上在华为官网申请的也不行,可能是必须得上架到应用市场才可以吧。

Failure[INSTALL_FAILED_APP_SOURCE_NOT_TRUSTED]

将hap复制到手机上手,不能像Android程序一样,点击安装包进行安装,系统不识别这种文件格式,会弹窗提示让选择打开的程序,如果选择“应用”,则提示“解析安装包失败”,这个提示很像是Android系统弹出的,而且选择打开的程序弹窗也像是Android系统的弹窗。使用hdc安装hap的命令为

hdc app install xxx.hap

(图3 系统不能识别hap安装包)
HarmonyOS应用如何打包HAP并安装到真机-鸿蒙开发者社区

(图3 不能使用“程序”应用处理hap安装包)
HarmonyOS应用如何打包HAP并安装到真机-鸿蒙开发者社区

四、总结

打包hap及安装到手机的流程与Android没有太大区别,而异同点主要体现在流程中的生成签名文件和安装上。

生成签名文件

  • 签名文件必须经过华为认证
  • 使用调试签名文件签名的安装包只能安装到指定的设备
  • 使用正式签名文件签名的安装包不能直接安装到真机,需要发布到应用市场才行
  • 签名文件不能共用,每个应用都需要配置一个签名文件

安装

  • 安装包不能手动点击安装,只能通过hdc app install 或进入shell后使用bm install进行安装

分类
已于2021-7-6 22:12:58修改
9
收藏 14
回复
举报
14条回复
按时间正序
/
按时间倒序
vsrrrrrb
vsrrrrrb

mark下~

回复
2021-7-3 23:59:22
XY道衍
XY道衍

牛, 华为对hap这应该放松点,不要增加开发者难度

回复
2021-7-5 08:27:45
wx5ca36e9bc315c
wx5ca36e9bc315c

hdc、bm可有道友介绍一下?突然adb不能用了有点懵

回复
2021-7-5 11:57:20
姚太龙
姚太龙 回复了 XY道衍
牛, 华为对hap这应该放松点,不要增加开发者难度

安全方面必须严格吧

回复
2021-7-5 15:11:56
爱吃土豆丝的打工人
爱吃土豆丝的打工人

没有真机的我,真的太难了。  模拟器卡到我哭。   华为在安全方面还是很强的,证书、签名必须得全部存才。

回复
2021-7-5 18:05:41
wx5ca36e9bc315c
wx5ca36e9bc315c

关于hap包的安装一节,安装上去后为何桌面找不到新安装的应用的图标,我怎样才能把这个debug_signed的hap包给到其他人员测试?在系统设置的应用管理搜索到我的应用,居然就叫entry_MainAbility,我的天啦

已于2021-7-6 09:36:37修改
回复
2021-7-6 09:32:40
Matrixfhd
Matrixfhd

release安装包到底该如何安装到真机呢?望楼主能详解,谢谢!

回复
2021-7-6 09:59:06
wx5ca36e9bc315c
wx5ca36e9bc315c 回复了 Matrixfhd
release安装包到底该如何安装到真机呢?望楼主能详解,谢谢!

HongmengSDK\toolchains\ 这里有hdc工具,可以加到path里,查看help指令,比如 hdc app install -r xxx.hap

回复
2021-7-6 11:54:23
wx5ca36e9bc315c
wx5ca36e9bc315c 回复了 wx5ca36e9bc315c
关于hap包的安装一节,安装上去后为何桌面找不到新安装的应用的图标,我怎样才能把这个debug_signed的hap包给到其他人员测试?在系统设置的应用管理搜索到我的应用,居然就叫entry_MainAbility,我的天啦

有人告诉我答案了,我搬运一下:

在config文件里,这个installationFree设置成false,

"distro": {

.........

      "installationFree": false

    },

3
回复
2021-7-6 11:55:36
丨张明亮丨
丨张明亮丨

好文,赞

回复
2021-7-6 22:36:55
Matrixfhd
Matrixfhd 回复了 wx5ca36e9bc315c
HongmengSDK\toolchains\ 这里有hdc工具,可以加到path里,查看help指令,比如 hdc app install -r xxx.hap

谢谢!

回复
2021-7-7 10:28:43
wx61a85ecbeac63
wx61a85ecbeac63

看完后发现系统还没宣传出去就成了国人的内卷工具了。。。

1
回复
2021-12-2 13:51:52
没用的喵叔
没用的喵叔

签名机制类似ios,理论上比安卓的更安全。但是鸿蒙没有ios所谓的企业证书,所以大家觉得不方便。9月份的时候我咨询过官方,说正在做这个。大家不要着急。

已于2021-12-2 15:00:19修改
回复
2021-12-2 14:59:49
Haoc_小源同学
Haoc_小源同学 回复了 没用的喵叔
签名机制类似ios,理论上比安卓的更安全。但是鸿蒙没有ios所谓的企业证书,所以大家觉得不方便。9月份的时候我咨询过官方,说正在做这个。大家不要着急。

请问做出来了吗

回复
2022-9-27 12:08:35
回复
    相关推荐