APK 签名。 APK 都必须经过数字签名后才能安装到设备上,签名需要对应的证书(keystore),大部分情况下 APK 都采用的自签名证书,就是自己生成证书然后给应用签名。
数字签名证书是给APK打包所必需的文件,所以我们先要把数字签名证书生成。在命令提示符下输入 keytool -genkey -v -keystore D:\mytest.keystore-alias mytest -keyalg RSA -validity 20000
-keystore D:\Users\Administrator\Desktop\mytest.keystore表示生成的证书及其存放路径,如果直接写文件名则默认生成在用户主目录下;
-alias mytest 表示证书的别名是mytest;
-keyalg RSA 表示采用的RSA算法;
-validity 20000表示证书的有效期是20000天。
根据指令输入密钥库口令,是不可见的。
依次输入下面的问题。最后到【否】那里时输入y
再输入密钥口令(可以与密钥库口令相同),如果相同,直接回车,记住这两个口令,后面签名会使用到。
这时便会生成一个文件mytest.keystore,就是我们需要的签名文件。
生成带签名的apk有两种方式,一种先生成未签名debug版本,再加上数字签名证书然后生成带签名的APK。另外一种就是直接一条命令生成带签名的APK。
第一种,先生成未签名的debug版本的apk
即首先直接cordova build android --release, 然后会生成一个android-release-unsigned.apk。把数字签名放到生成的未签名的apk所在的目录下,输入以下命令:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mytest.keystore android-release-unsigned.apk cordova-demo
这时的apk就会是一个已经签名的apk了,修改一下名字即可直接放到设备上安装。
第二种,直接生成带签名的apk
有了数字签名之后,数字签名需要放在cordova项目根目录下或者可以修改下面指令的keystore里的路径可以直接在cordova build 中指定所有参数来快速打包,这会直接生成一个android-release.apk(已经是带签名的了)给你
cordova build android --release -- --keystore="mytest.keystore" --alias=cordova-demo --storePassword=testing --password=testing1
keystore 后面是数字签名证书, --alias 后面是别名 storePassword 后面是密钥库口令 password 后面是密钥口令
但每次输入命令行参数是很重复的,Cordova 允许我们建立一个 build.json 配置文件来简化操作。
文件内容如下
{
"android": {
"release": {
"keystore": "release-key.keystore",
"alias": "cordova-demo",
"storePassword": "testing",
"password": "testing2"
}
}
}
但下面的两个密码建议不要写到里面去,可以去掉然后手动输入。
直接使用cordova build --release就可以生成带签名的apk了 注意-----------指令后面没有android