HarmonyOS 鸿蒙Next是否支持app重签名,或者不依赖DevEco Studio,直接命令行构建app

发布于 1周前 作者 itying888 来自 鸿蒙OS

HarmonyOS 鸿蒙Next是否支持app重签名,或者不依赖DevEco Studio,直接命令行构建app 背景:

开发工具DevEco Studio,语言:Java,编译构建APP发布市场。当前官方文档指导的方式,是依赖DevEco Studio,Build > Build APP(s)/Hap(s) > Build APP(s)构建app

问题:

是否支持app重签名,或者不依赖DevEco Studio,直接命令行生成app?

具体场景:

公司用于发布应用的签名证书,一般是不会给到开发人员的,担心人员流动造成证书泄露。大部分由技术负责人持有,或者放在平台,自动化签名打包。

按照当前文档指导,要打包上市场,就必须在技术负责人那边配置DevEco Studio,拉代码才能进行打包。如果开发测试没问题,但打包构建有问题,还得反复折腾。

能否可以和Android一样,先打出release包,然后再命令行依赖正式签名证书重新签名;或者命令行直接依赖正式签名证书编译构建app。这两种方式都可以直接写成脚本,不需要再有人员介入。


更多关于HarmonyOS 鸿蒙Next是否支持app重签名,或者不依赖DevEco Studio,直接命令行构建app的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

楼主你好,按此方法签名,已经提供给资料编入对外文档中,文档即将正式发布。

在执行如下操作前,建议将app包、拆包工具、签名工具、密钥库文件、调试证书、Profile文件存放到同一个文件夹。 打开命令行工具,并进入拆包工具所在目录,执行如下命令,将app拆包为hap包。

java -jar hmos_app_unpacking_tool.jar --mode app --app-path myApplication-release.app --out-path ~/harmonyos/app/out --force true --unpackapk false

关于该命令中需要修改的参数说明如下,其余参数不需要修改:

  • app-path:指定需要拆分的app包。
  • out-path:指定hap包存储路径,该路径不能与app包存放在同一个目录下。
  • force:取值为true,表示强制删除输出文件夹中的所有文件。

进入签名工具所在目录,执行如下命令,对拆分出的hap包进行签名。

java -jar hapsigntoolv2.jar sign -mode localjks -privatekey myApplication_debug -inputFile entry-release-rich.hap -outputFile signed_entry-release-rich.hap -signAlg SHA256withECDSA -keystore myApplication_debug.p12 -keystorepasswd ab123456 -keyaliaspasswd ab123456 -profile myApplication_debug.p7b -certpath myApplication_debug.cer -profileSigned 1

关于该命令中需要修改的参数说明如下,其余参数不需要修改:

  • privatekey:密钥的别名信息,与创建密钥库文件时“Alias”取值保持一致。
  • inputFile:需要签名的hap包名称。
  • outputFile:签名后的hap包名称。
  • keystore:密钥库文件。
  • keystorepasswd:密钥库密码。
  • keyaliaspasswd:密钥密码。
  • profile:申请的Profile文件。
  • certpath:申请的调试证书文件。

前提条件

说明:

对于拆包后的hap包进行签名,由于使用的是命令行工具进行签名,不能使用DevEco Studio自动签名方案生成的证书文件,需要手动制作密钥库文件、申请调试证书和Profile文件。

  • 下载app包拆包工具hmos_app_unpacking_tool.jar。
  • 下载hap包签名工具hapsigntoolv2.jar。
  • 已提前准备密钥库文件(.p12)、调试证书(.cer)和Profile文件(.p7b)。其中:
    • 密钥库文件制作请参考生成密钥和证书请求文件。
    • 调试证书和Profile文件申请,请参考手动申请调试证书和Profile。

更多关于HarmonyOS 鸿蒙Next是否支持app重签名,或者不依赖DevEco Studio,直接命令行构建app的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


谢谢回复。

“对于拆包后的hap包进行签名,由于使用的是命令行工具进行签名,不能使用DevEco Studio自动签名方案生成的证书文件,需要手动制作密钥库文件、申请调试证书和Profile文件。”

咨询下,官方文档-应用发布,“使用DevEco Studio生成密钥和证书请求文件”和“使用命令行工具生成证书请求文件”,这两种方式生成的请求文件还不同吗?能否兼容?我这边使用第一种方式,已经上架应用了,如果必须得更换密钥、签名证书,那就真的有点坑了

你好,已经过去一个月了,文档大概啥时候发布

您好,相关问题已经反馈给工作人员,请耐心等待,感谢您对华为开发者论坛的支持。

HarmonyOS 鸿蒙Next支持app重签名,但这一过程通常需要借助一些工具和特定的签名文件来完成,而非直接通过简单的命令行操作实现重签名功能。对于不依赖DevEco Studio,直接通过命令行构建app的需求,HarmonyOS提供了HBuild命令行工具,可以用来构建鸿蒙应用。

要实现app的重签名,通常你需要准备签名证书(如.p12或.pfx文件)以及相关的密码。然后,你可以使用鸿蒙提供的命令行工具或者脚本,结合签名证书,对已经构建好的app包进行重新签名。

对于直接命令行构建app,你可以使用HBuild工具,并配置好相关的构建脚本和参数。HBuild工具支持从源代码构建鸿蒙应用,并生成可安装的app包。

需要注意的是,具体的命令行操作和参数可能会随着鸿蒙系统的更新而有所变化,建议查阅最新的鸿蒙开发者文档或者官方指南来获取最准确的信息。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部