鸿蒙应用(Harmony OS App)的签名方式

在基于鸿蒙SDK开发完成应用后,可以通过 Build -> Build Hap(s)/APP(s) 编译后,在 项目根目录/build/outputs/app/release/ 目录下生成两个文件: xxx_unsigned.app 和 xxx_signed.app。在某些情况下可能需要使用 xxx_unsigned.app 文件,然后使用同步的签名文件对文件进行签名。

那么问题来了,怎么对未签名的文件进行重新签名呢?这个文件就是本文想要解决的问题。

前提

  1. 本文中用到的签名文件需要从华为开发者申请,具体申请流程可参考 HarmonyOS Developer工具->应用发布。这里就不再累述;
  2. 需要安装 DevEco Studio。该工具可以去 HarmonyOS Developer 下载。

为什么要使用脚本签名

  1. 团队管理上,为了保护正式的签名证书。所以在开发阶段使用开发的签名证书,发布的时候使用正式的签名证书。
  2. 在对应用做加固的时候,加固后需要重新签名。

签名方法

在 DevEco Studio 中有一个 hapsigntoolv2.jar 。通过这个 jar 包可以对应用进行重签名。签名脚本内容如下:

echo "开始签名操作..."

## 设置 hapsigntoolv2.jar 的路径
jarPath=/Users/<User>/Library/Huawei/Sdk/toolchains/lib/hapsigntoolv2.jar
## 设置签名文件 .p12 的目录
keystorePath=release.p12

## 设置签名文件密码变量。这个密码在生成签名文件是设置的
keystorePasswd=abcdefg

## 设置签名文件别名
keystoreAlias=Alias

## 设置证书 .p7b 文件路径
profilePath=release.p7b

## 设置证书 .cer 文件路径
certPath=release.cer

## 输入文件路径设置。输入文件路径作为命令执行的第一个参数
inputFilePath=$1

## 输出文件路径设置。输出文件路径作为命令执行的第二个参数
outputFilePath=$2

## 进行签名
java -jar $jarPath sign -mode localjks -keystore $keystorePath -keystorepasswd $keystorePasswd -privatekey $keystoreAlias -keyaliaspasswd $keystorePasswd -signAlg SHA256withECDSA -profile $profilePath -certpath $certPath -inputFile $inputFilePath -outputFile $outputFilePath

echo .
echo "签名完成~~~"

将上面内容写到一个 signer.sh 文件中保持。通过下面指令赋给脚本文件可行的权限:

$ chmod 777 signer.sh

至此,一个简单的签名工具已经完成。

签名工具的使用

上面章节已经完成一个简单的签名工具 signer.sh。使用方式如下:

$ signer.sh xxx_unsigned.app xxx_signed.app

如果执行成功,则会生成 xxx_signed.app 文件。
然后尝试运行一下试试吧。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值