No -tsa or -tsacert is provided 解决方法

     今天在build android apk的时候遇到一个奇怪的问题,以release 模式build 好了之后用jarsigner给apk签名,结果报出一个warning

No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (xxxx-xx-xx) or after any future revocation date

      很奇怪,之前的好好的,现在怎么突然有warning了,而且发现虽然是warning,但是我安装apk的时候提示我找不到签名被拒绝了。很纳闷,怎么突然就不好用了。本来昨晚要给老大发个版本的,得正式签名,一般都是在服务器上做,但是昨晚在家的时候登不上内网服务器,还好后来老大不要包了!不然要被K的狗血喷头。完全不知道什么情况。就不好用了。google了一上午,没有发现任何有用的信息,一般都是说是使用jarsigner的时候把-tsa 参数补全就好了,但是以前都没有出现过呀,就又继续google。有个哥们儿说java7之后jarsigner增加了对timestamp的检查,所以得加上了,找到一个提供timestamp的网站 http://tsa.starfieldtech.com。 但我不太想用时间戳,主要是不知道为什么现在突然要用了。已经受够了不知其所以然的状态了。

      冥思苦想一阵子之后想起,前阵子想鼓捣java8,就安装了java吧,一查java 的version果然是1.8,在网上搜了一下怎么配置java的版本

     使用 update-alternatives 命令可以修改命令对应的程序路径,自然也可以修改版本号。于是使用

sudo update-alternatives --config java
     可以查看目前的java配置,我的如下

Selection    Path                                           Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1063      auto mode
  1            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1063      manual mode
  2            /usr/lib/jvm/java-8-oracle/jre/bin/java         1062      manual mode

      可以看出我的java用的是java6,之前是java8,这个是我改过之后的配置了,需要注意的是优先级越高的话,系统会自动挑选那个作为使用版本,除非手动选择其他版本,于是我调用

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1063
      给java6提高了优先级,系统就自动选择java6的编译器。

      我以为问题解决了,但是使用jarsigner的时候还是相同的问题,纠结了一会儿之后想到,是不是jarsigner也有版本的,对应不同的java应该有不同的signer,一查果然,jarsigner还是用的java8的jarsigner,按照上面的办法把jarsigner的默认版本号也修改成了java6的,一切又恢复了正常。

      虽然问题解决了,但是实际上,我只是把版本回退了,最好还是增加tsa参数加上时间戳更现代化一点。但是应用开发的问题就在这里,很多时候,我们不能用最新的一些东西,由于历史或者现实的原因只能用一些旧的工具或者技术,这是搞技术的人的最大的悲哀。如果能用最新的东西,最好还是用新的,虽然新的可能有bug,但是新的集合了开发者新的功能或者有优化,发展的趋势一定是好的,当然也不排除那些不做死就不会死的人。以此自醒。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值