ionic cordova build android
生成的是带签名的android-debug.apk, 这个是可以在手机上安装的, 但是换个电脑打包这个签名就不一样了, 这样就不能直接替换安装了, 需要卸载了再安装.ionic cordova build android --release
生成的是android-release-unsigned.apk, 这个apk是没有签名的, 无法安装到手机, 需要我们签名
https://blog.csdn.net/jiangwei0910410003/article/details/50402000 - 深度解析
https://www.jianshu.com/p/286d2b372334
https://www.cnblogs.com/share123/p/5900583.html
http://blog.csdn.net/maxbalance/article/details/49157579
给apk签名一共要用到3个工具,或者说3个命令,分别是:keytool、jarsigner和zipalign,下面是对这3个工具的简单介绍:
1)keytool:生成数字证书,即密钥,也就是上面说到的扩展名为.keystore的那类文件;JDK包含
2)jarsigner:使用数字证书给apk文件签名;JDK包含
3)zipalign:对签名后的apk进行优化(非必须),提高与Android系统交互的效率(Android SDK1.6版本开始包含)
1. 生成keystore文件, 中间输入的密码牢记
keytool -genkey -v -keystore mark.keystore -alias mark.keystore -keyalg RSA -validity 20000
2. 对apk签名
前面的是生成的apk文件, 后面的是要签名的apk路径, 可以相对和绝对
jarsigner -verbose -keystore mark.keystore -signedjar mark_signed.apk d:/GitHub/qqtr/apk/android-release-unsigned.apk mark.keystore
3. 查看证书信息 - 私钥信息
将签名后的apk解压, 进入解压的目录, 执行下面的命令
keytool -printcert -file META-INF/*.RSA
所有者: CN=mark, OU=mark, O=mark, L=SZ, ST=guangdong, C=CN
发布者: CN=mark, OU=mark, O=mark, L=SZ, ST=guangdong, C=CN
序列号: 4b8b5121
有效期开始日期: Tue Dec 26 13:36:45 CST 2017, 截止日期: Wed Sep 28 13:36:45 CST 2072
证书指纹(私钥Hash, 用GenSignature看到的就是这个MD5):
MD5: D6:BF:74:FA:B6:29:2C:D8:9F:45:0A:8E:B2:7F:6D:97
SHA1: 93:2B:E9:CC:6E:41:01:A7:B7:7C:CC:DC:80:A9:6B:29:25:DB:A8:E9
SHA256: 89:37:59:99:FA:36:57:52:E6:B3:2D:82:29:C0:F7:FF:B3:65:5F:72:8A:86:D4:6C:41:44:DF:C4:2E:CE:CE:53
签名算法名称: SHA256withRSA
版本: 3
4. APP工具查看证书信息
使用下面这个APP, 通过包名查看任意APP的签名值
https://files.cnblogs.com/files/wancy86/Gen_Signature_Android2.apk
5. 查看APP的实际签名信息
解压APK后查看 \META-INF\XXXX.RSA中的内容
这里我们看到的都是二进制文件,因为RSA文件加密了,所以我们需要用openssl命令才能查看其内容
openssl pkcs7 -inform DER -in XXXX.RSA -noout -print_certs –text