【问题标题】:jarsigner returns NullPointerException errorjarsigner 返回 NullPointerException 错误
【发布时间】:2018-11-19 17:51:55
【问题描述】:

我有一个 cordova 应用程序,正在使用 cmd 来构建它,并且需要签署它的发布 apk。

首先我在没有 -tsa 选项的情况下执行此操作,因此运行它询问 pwd 的命令,然后 用警告签名:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 
-keystore my.keystore "apk\release\app-release-unsigned.apk" myaliasofkeystore

没有提供 -tsa 或 -tsacert 并且这个 jar 没有时间戳。

所以我添加了选项 -tsa timestamp.digicert.com :

jarsigner -tsa timestamp.digicert.com -verbose -sigalg SHA1withRSA -digestalg SHA1 
-keystore my.keystore "apk\release\app-release-unsigned.apk" myaliasofkeystore

现在,在运行此命令时,它会要求输入密码 但之后会产生这个错误:

jarsigner 错误:java.lang.NullPointerException

【问题讨论】:

    标签: java android cordova jarsigner jar-signing


    【解决方案1】:

    您不需要添加 -tsa。忽略这个关于时间戳的警告。

    根据docs:

    建议对签名进行时间戳,如果签名没有时间戳,则会显示警告。时间戳用于验证用于签署 JAR 文件的证书在签署时是否有效。

    这意味着证书过期后,用户可以放心,您已在过期日之前签署了您的 APK。但是根据google docs:

    如果您计划在 Google Play 上发布您的应用,则用于签署这些 APK 的密钥的有效期必须在 2033 年 10 月 22 日之后结束。Google Play 强制执行此要求,以确保用户可以在新版本发布时无缝升级应用可用。

    如果您的用户无法在 2033 年 10 月 23 日验证证书,我认为这没什么大不了 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多