Android 二次签名(时间戳问题)

本文解决从JDK1.6升级到JDK1.7后使用jarsigner进行APK签名时出现的时间戳问题。通过添加特定参数解决了官方时间戳服务更换带来的警告。

前言:久违的第二篇博客:需求太多还有点乱,加上自己的一点惰性,致使时隔太久。好了直接上货,也是前些日子遇到的一点小问题。主要是jdk1.6_以下转到jdk1.7_以上遇到的一个时间戳问题

内容:在以前的工作中都是使用IDE直接打包签名的,现在是要将打包签名之后的apk处理之后再次签名,就不可以使用IDE签名,需要使用jdk中bin目录下的jarsiger.exe作为签名的工具,上图展示:



打开你的cmd命令行进入到java\jdk\bin目录下,执行以下命令(注意“-”之前的空格)此时就是这个我想说的关键问题:就是jdk1.6以下_和jdk1.7_以上区别:

jdk1.6_执行一下命令正常没有问题(自行替换)

jarsigner.exe -verbose 指定生成详细输出 -sigalg (算法名称一般是SHA1withRSA) -digestalg (摘要算法名称一般是SHA1或是SHA256) -keystore 秘钥的位置 -storepass 密码 -keypass 当初设置的密码 -signedjar 输出路径 输入路径 数字证书别名


jdk1.7_执行以上代码,会出现个警告,虽然当时安装可能没有什么问题,但是对于一个有一点强迫症患者的我还是有点不舒服



他说翻墙可以解决:然并卵。可能是我翻不过去

为了解决这个问题查访各方资料终于在 stackoverflow中找到了答案,附上链接供大家分享(我是连接

需要在你的命令中添加“-tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp ”加完之后是这样的,迫不及待的想要试试。


完美!


总结:之所以出现需要时间戳的问题应该由于指定了算法,如果没有指定算法的命令也许就不需要时间戳了,这是我的猜测,最后自己试了一下,啪啪啪打脸,毛关系没有。主要原因就是官方在2017年4月18日停止了以前时间戳服务,为了不影响产业链换了一个新的地址替代,就是今天我们加入的那个命令

官方解释:附上链接(点我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值