一、使用命令行打包签名apk:
前提是cordova的环境ok java jdk Android sdk等等...
- 打包apk
cordova bulid android //用于测试的打包方式,生成已签名apk
cordova build --release android //生成没有签名的apk
第一个命令生成的是一个Cordova-debug.apk,
很明显是用来进行本地开发测试使用的,注意这个apk是有签名的,所以能被安装在手机上,
但是这个不能用来上架,因为只有在绝对同样的环境下进行打包,才能保证这个apk的签名相同,
意味着你这台机器必须始终保持正常并且系统和打包工具等不作修改。这明显是不合理的。所以,我们必须采用生产的方式打包,就是第二个命令,这个命令生成的是一个无签名的apk,他无法安装在手机上,必须进行签名。
- 生成签名文件
keytool -genkey -v -keystore demo.keystore -alias demo.keystore -keyalg RSA -validity 20000
keytool是工具名称;
-genkey意味着执行的是生成数字证书操作;
-v表示将生成证书的详细信息打印出来;
-keystore demo.keystore 表示证书的文件名;
-alias demo.keystore 表示证书的别名;
-keyalg RSA 生成密钥文件所采用的算法;
-validity 20000 该数字证书的有效期,单位是天;
输入后会让你输入密码,并回答一些关于你公司和地区的问题,回答完后截屏记录,防止忘记。
- 签名apk
jarsigner -verbose -keystore /yourpath/demo.keystore -signedjar /yourpath/demo_signed.apk /yourpath/demo.apk /yourpath/demo.keystore
jarsigner是工具名称,
-verbose表示将签名过程中的详细信息打印出来;
/yourpath/ (根据自己的情况配置)相对于当前命令行所在文件夹的位置,可将下列文件放在同一目录下;
-keystore /yourpath/demo.keystore 刚刚生成的签名文件;
-signedjar /yourpath/demo_signed.apk �签名后的apk名称
/yourpath/demo.apk 需要签名的apk
/yourpath/demo.keystore 证书的别名
《----自己需要的:
jarsigner -verbose -keystore demo.keystore -signedjar demo1019.apk C:/Users/Administrator/Desktop/101901and/kydemo1/platforms/android/build/outputs/apk/android-release-unsigned.apk demo.keystore
--》
- 查看apk的签名
查看签名是否成功, 可将签名后的文件,后缀名的apk改为zip,解压。
在该目录下,输入如下命令:
keytool -printcert -file META-INF/CERT.RSA 看到的md5的数值和微信的获取签名的apk的数值应该是一致的。
META-INF/TEST.RSA 根据自己的情况配置;