📅  最后修改于: 2023-12-03 15:00:02.046000             🧑  作者: Mango
在使用 Cordova 创建 Android 应用并签名时,需要生成一个密钥库(Keystore)用于对应用进行数字签名。本文将介绍如何在 Bash shell 中使用 keytool 生成一个密钥库文件,并在 Cordova 中使用。
在 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
参数指定了密钥的有效期,单位为天。
执行以上命令后,会要求你输入一系列信息,例如密钥库密码、别名密码、名字等。请按提示输入正确的信息,并牢记你输入的密码,以便后续使用。
接下来,在 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
:指定了密钥库文件名,这里应该与前面生成的密钥库文件名一致。在 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 命令对应用进行签名和优化。