使用jdk方法给apk文件进行签名
1.使用keytool生成签名文件
使用jdk的keytool工具生成签名用的秘钥库文件,具体使用命令可以用keytool -help命令查看
生成证书命令:keytool -genkey -alias [alias] -keyalg [keyalg]-validity [validity] -keystore [keystorename]
栗子:keytool -genkey -alias mykeystore.keystore -keyalg RSA -validity 3650 -keystore mykeystore.keystore
参数解释: -alias:别名,随便输入,这里是mykeystore.keystore,可以随意换成其它的名字,xxxx;-keyalg:加密方式,一般使用RSA即可;-validity:有效时间,越长越好,这里是3650天。-keystore: 签名文件名称,这里的签名文件名和别名是写成一样的,怕多了记混了,嘿嘿。
按下回车后会提示输入一些信息,秘钥口令、姓氏、公司名、所在城市名等等,输入就行了。秘钥口令可以随便输,不要忘记了就行,签名时要用到。可能之后会有一个迁移提示,按照提示迁移就行。
完成后,这时应该多了一个mykeystore.keystore文件。
2.使用jarsigner给apk签名
jdk自带jarsiner签名工具,命令:jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkIn] [alias]
栗子:jarsigner -verbose -keystore mykeystore.keystore -signedjar signed.apk nosigned.apk
mykeystore.keystore (这里的签名文件和未签名apk文件放在了同一个文件夹下,省去了路径)
参数:-verbose 显示签名详情,(建议不使用该命令,就是签名过程的输出信息,没什么大作用);keystorePath 签名文件路径; apkOut:签名后的apk文件名,apkIn:签名前的文件名;[alias]:签名文件别名
提示签名成功后,会多出一个signed.apk文件,签名成功!