当前位置:   article > 正文

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

harmony 签名

在基于鸿蒙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 "签名完成~~~"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

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

$ chmod 777 signer.sh
  • 1

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

签名工具的使用

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

$ signer.sh xxx_unsigned.app xxx_signed.app
  • 1

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

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号