1

OpenHarmony应用Hap包签名

 1 year ago
source link: https://www.51cto.com/article/719309.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
02be5223854924a02005689eb4be878380538b.png

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​

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

在HarmonyOS中有AGC应用商店可以帮助开发者完成release签名,但是OH就没有这么方便了,本文将介绍OH应用签名方法步骤,将使用OH官方提供的签名工具对Hap进行签名。

使用DevEco Studio完成Hap自动签名

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

OpenHarmony应用Hap包签名-开源基础软件社区

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

OpenHarmony应用Hap包签名-开源基础软件社区

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

OpenHarmony应用Hap包签名-开源基础软件社区

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

OpenHarmony应用Hap包签名-开源基础软件社区

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

IDE对Hap包签名的密码限制

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

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

OpenHarmony应用Hap包签名-开源基础软件社区
OpenHarmony应用Hap包签名-开源基础软件社区

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

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

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

查阅官方资料发现,官方已经提供了命令行签名工具 developtools_hapsigner,https://gitee.com/openharmony/developtools_hapsigner。

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

具体步骤如下:

1、安装工具依赖环境

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

OpenHarmony应用Hap包签名-开源基础软件社区

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

OpenHarmony应用Hap包签名-开源基础软件社区

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

修改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 Release
app.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。

OpenHarmony应用Hap包签名-开源基础软件社区

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

OpenHarmony应用Hap包签名-开源基础软件社区

DevEco Studio开发工具为开发人员提供了非常友好的hap自动签名功能,以及非常便捷的Debug包发布。

由于IDE的安全密码要求,对于Release包的发布我们暂时需要手动签名,尤其是系统级的应用。

我们可以利用官方提供的签名工具较为容易的完成release包签名,后续可以自行开发GUI工具进一步提升签名效率。

​想了解更多关于开源的内容,请访问:​

​51CTO 开源基础软件社区​

​https://ost.51cto.com​​。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK