【发布时间】:2017-07-22 02:35:35
【问题描述】:
我们正在开发一个 Cordova 应用,但在签署该应用的 Android 版本时遇到了困难。
使用命令
jarsigner -keystore keystore.p12 -storetype pkcs12 android-release-unsigned.apk 1
给出以下异常
java.io.IOException: DerInputStream.getLength(): Redundant length bytes found
它来自 OpenJDK 中的 this line apparently 这是为了修复 CVE-2016-5546 而添加的,尽管我对加密的了解还不够,无法真正理解它。
使用 openssl 导出证书并从中创建一个新的 p12 工作正常,但会更改签名,这意味着 Play 商店拒绝上传。
我们的密钥库来自我们最初将应用程序开发外包给的另一家公司。
任何 jarsigner 或 keytool 命令都会引发相同的异常,我认为这是有道理的,因为它们都使用相同的 Java lib
【问题讨论】:
-
你试过Oracle的JDK吗?
-
给出与 Oracle 8 和 9 相同的信息 :(
-
OpenJDK JIRA 上存在这个问题,似乎非常相关bugs.openjdk.java.net/browse/JDK-8175251
-
JDK 1.8.0_111 没有这个问题,我在 Android Studio 中遇到了同样的错误,设置 JDK_1.8.0_111 对我有用
标签: java android cordova signing pkcs#12