📜  cordova android 生成密钥库 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:00:02.046000             🧑  作者: Mango

Cordova Android 生成密钥库

简介

在使用 Cordova 创建 Android 应用并签名时,需要生成一个密钥库(Keystore)用于对应用进行数字签名。本文将介绍如何在 Bash shell 中使用 keytool 生成一个密钥库文件,并在 Cordova 中使用。

步骤
1. 使用 keytool 生成密钥库

在 Bash shell 中执行以下命令来生成一个密钥库:

keytool -genkey -v -keystore my-app-key.keystore -alias my-app-alias -keyalg RSA -keysize 2048 -validity 10000

这里的 my-app-key.keystore 是你要生成的密钥库文件名,可以自行定义。my-app-alias 是你要为密钥库生成的别名,同样可以自行定义。-keyalg RSA 指定了使用 RSA 算法生成密钥对,-keysize 2048 则指定了密钥长度为 2048 位。-validity 参数指定了密钥的有效期,单位为天。

执行以上命令后,会要求你输入一系列信息,例如密钥库密码、别名密码、名字等。请按提示输入正确的信息,并牢记你输入的密码,以便后续使用。

2. 在 Cordova 中配置密钥库

接下来,在 Cordova 项目的根目录中找到 config.xml 文件,并添加如下代码:

<platform name="android">
    <preference name="android-signingKeyAlias" value="my-app-alias" />
    <preference name="android-signingKeyPassword" value="******" />
    <preference name="android-signingStorePassword" value="******" />
    <preference name="android-signingKeyLocation" value="my-app-key.keystore" />
</platform>

在这个代码段中,我们定义了若干参数:

  • android-signingKeyAlias:指定了要使用的密钥库别名,这里应该与前面生成密钥库时设置的别名一致。
  • android-signingKeyPassword:指定了密钥库密码。
  • android-signingStorePassword:指定了密钥密码,这里同样应该输入前面输入的密码。
  • android-signingKeyLocation:指定了密钥库文件名,这里应该与前面生成的密钥库文件名一致。
3. 使用密钥库签名 Android 应用

在 Cordova 项目根目录下执行以下命令以打包应用:

cordova build android --release

打包成功后,签名应用:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-app-key.keystore android-release-unsigned.apk my-app-alias

这里的 my-app-alias 应该与前面定义的密钥库别名一致。签名成功后会生成一个 android-release-unsigned.apk 文件。

最后,使用 zipalign 命令优化 APK:

zipalign -v 4 android-release-unsigned.apk my-app.apk

关于使用 jdk 签名 Android 应用,可以参考 官方文档

总结

本文介绍了如何在 Bash shell 中使用 keytool 生成一个密钥库,并在 Cordova 项目中使用该密钥库签名应用。同时介绍了使用 jarsigner 和 zipalign 命令对应用进行签名和优化。