我正在使用 Harman 的最新 AIRSDK 50.2.2.5 编译一个专属 APK,我收到消息“警告:签署 Android apk 失败”。
我的 .p12 文件是在 2012 年从 Animate 创建的,但它始终适用于旧版本的 Adobe AIR。奇怪的是,如果我从 Animate 创建一个新的 .p12,编译会顺利进行,没有“签名失败”消息,但生成的 APK 无法作为更新上传到 Play 商店,因为它说证书用于签名 APK 不同,所以我无法将应用程序作为更新上传。
那么,在使用我的旧 .p12 证书时,如何解决“无法签署 Android apk”的问题?我已经在“Keystore Explorer”工具中打开了,上面写着2036-05-17过期,所以这个证书还有很多时间可以使用
我看到的唯一区别是 Keystore Explorer 说新的 .p12 证书有效(但对应用程序更新无用)具有 2048 密钥大小,而旧的 .p12 具有 1024 密钥大小。因为我注意到了这种差异,所以我试着对此进行了一些研究,并从 Adobe 找到了这篇文章:
https://helpx.adobe.com/mt/x-productkb/multi/rsa1024-certificate-issue-with-adt-tool.html
它表示在使用 Java 8 及更高版本的计算机上“使用 RSA-1024 证书打包 Android 应用程序失败”。它建议的唯一解决方案是降级到 Java 7 或 6。我尝试将 Java 7 与 adt 一起使用(通过在 adt.cfg 中配置它),但随后我收到以下消息:
“警告:找不到适合 v11+ JDK 的 Java Home 位置
警告:找不到适合 v8+ JDK 的 Java Home 位置”
所以我不能使用 Java 7 或更低版本,因为 ADT 会寻找更新的版本,但我不能使用 Java 8 或更高版本,因为它无法使用 RSA-1024 .p12 证书。
我还尝试在
“SDK 缺少文件 /Users/myuser/AndroidSDK/build-tools/33.0.2/lib/dx.jar”
在研究此错误消息后,我发现一个可能的解决方案是创建 d8 和 d8.jar 的副本并将它们命名为“dx”和“dx.jar”。但是这样做会产生另一个错误信息:
“dx 工具失败:/Users/myuser/AndroidSDK/build-tools/33.0.2/lib/dx.jar 中没有主要清单属性”
所以在浪费了很多时间之后,我被难住了。我应该怎么做才能再次使用我的旧证书发布应用程序更新?必须有一些我找不到的解决方案。