写点什么

OpenHarmony 应用 HAP 包签名

  • 2022-10-13
    上海
  • 本文字数:1502 字

    阅读完需:约 5 分钟

OpenHarmony应用HAP包签名

背景

OpenAtom OpenHarmony(以下简称“OpenHarmony”)应用如果需要对外发布就必须要通过应用签名,DevEco Studio 已提供自动签名功能加速应用开发,但自动签名仅限于 debug 开发,如需对外发布则必须完成 release 签名。

在 OpenHarmony 中有 AGC 应用商店可以帮助开发者完成 release 签名,本文将介绍 OpenHarmony 应用签名方法的步骤,将使用 OpenHarmony 官方提供的签名工具对 HAP 进行签名。

使用 DevEco Studio 完成 HAP 自动签名

打开 DevEco Studio 工具,点击右上角 Project Structure 进入工程配置页面



点击 Project -> Signing Configs,勾选 Automatically generate signing,点击 OK



点击 Build -> Rebuild Project 或 Build HAP 都可以编译构建 HAP 包



编辑构建完成后我们可以得到未签名的 HAP 包



这个包可以用于 Debug 调试,但不能用于 Release 正式发布

IDE 对 HAP 包签名的密码限制

从理论上讲,我们也可以通过 DevEco Studio 进行 HAP 包的发布签名,但是官方提供的 OpenHarmony.p12 文件密码为 123456

而 IDE 不支持使用 123456 这样的简单的密码,它达不到密码安全级别



因此,使用官方加密文件完成签名暂时行不通

我们改变思路,使用命令行方式完成签名,这样可以绕过 IDE 的限制

使用官方开源签名工具完成签名

查阅官方资料发现,官方已经提供了命令行签名工具

https://gitee.com/openharmony/developtools_hapsigner

我们通过修改配置文件、执行脚本,即可完成 HAP 签名

具体步骤如下:

1 安装工具依赖环境

安装 python3.10(下载链接:https://www.python.org/downloads/),通过命令行验证安装是否成功



安装 jdk,配置好环境变量,通过命令行验证安装是否成功



2 将签名工具代码拉取到本地保存,修改配置文件

git clone https://gitee.com/openharmony/developtools_HAPsigner.git


修改 developtools_HAPsigner\autosign\signHAP.config 文件配置


# config.signtool 改为 HAP-sign-tool.jar 的绝对路径,可以在 dist 目录中找到 config.signtool=E:/openharmony/developtools_HAPsigner/dist/HAP-sign-tool.jar


# common.keystoreFile 改为 OpenHarmony.p12 的绝对路径,可以在 dist 目录中找到 common.keystoreFile=E:/openharmony/developtools_HAPsigner/dist/OpenHarmony.p12


# app.keypair.keyAlias 改为 OpenHarmony Application

Releaseapp.keypair.keyAlias=OpenHarmony Application Release


# cert.app.outFile 改为 OpenHarmonyApplication.pem 的绝对路径,可以在 dist 目录中找到 cert.app.outFile=E:/openharmony/developtools_HAPsigner/dist/OpenHarmonyApplication.pem


# sign.profile.outFile 改为官方提供的 p7b 绝对路径,比如 launcher 代码中提供了 launcher.p7b 加密文件

sign.profile.outFile=E:/openharmony/signfiles/launcher/launcher.p7b


# sign.app.inFile 为未签名 HAP 路径

sign.app.inFile=E:/openharmony/applications_launcher/product/phone/build/default/outputs/default/phone-launcher-default-unsigned.HAP


# sign.app.outFile 为签名后的 HAP 保存路径

sign.app.outFile=E:/openharmony/applications_launcher/product/phone/build/default/outputs/default/phone-launcher-signed.HAP


3 完成配置文件修改后,执行签名脚本

# 进入签名工具 autosign 目录

cd E:\openharmony\developtools_HAPsigner\autosign

# 执行 python 脚本

python .\autosign.py signHAP

签名成功后显示 Success



到指定目录下可以找到签名后的 HAP



总结

DevEco Studio 开发工具为开发人员提供了非常友好的 HAP 自动签名功能及非常便捷的 Debug 包。由于 IDE 的安全密码要求,对于 Release 包的发布我们暂时需要手动签名,尤其是系统级的应用。我们可以利用官方提供的签名工具较为容易地完成 release 包签名,后续可以自行开发 GUI 工具进一步提升签名效率。



用户头像

OpenHarmony开发者官方账号 2021-12-15 加入

OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展

评论

发布
暂无评论
OpenHarmony应用HAP包签名_OpenHarmony_OpenHarmony开发者社区_InfoQ写作社区