最近很久没有上传过Google play的java秘钥库了,之前多个应用一直都是复用同一个秘钥库,现在运营开了个新账号,需要提供新签名,所以需要用Google的命令生成一个output.zip文件上传上去,用的之前的Google老的命令行生成的.zip文件传上去报错如下图:
之前老的命令行如下:
java -jar pepk.jar --keystore=xxx.keystore --alias=xxx --output=output.zip --signing-keystore=xxx.keystore --signing-key-alias=xxx --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a
先是直接用Google下载的pepk.jar,然后用最新的命令生成.zip文件:
java -jar pepk.jar --keystore=xxx.keystore --alias=xxx --output=output.zip --signing-keystore=xxx.keystore --signing-key-alias=xxx --rsa-aes-encryption --encryption-key-path=encryption_public_key.pem
结果报错:
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/google/wireless/android/vending/developer/signing/tools/extern/export/ExportEncryptedPrivateKeyTool has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
网上搜了一下:是因为我本地的jdk环境是1.8,太低了,要更新java本地环境,于是我在网上下载了Oracle jdk22,配置好环境变量后,使用最新的Google命令却报错如下:
Error: Unable to export or encrypt the private key
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/NONE/OAEPWithSHA1AndMGF1Padding
at java.base/javax.crypto.Cipher.getInstance(Cipher.java:563)
at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.encryptPrivateKeyWithCkmRsaAesKeyWrapEncryption(ExportEncryptedPrivateKeyTool.java:284)
at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.run(ExportEncryptedPrivateKeyTool.java:213)
at com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.main(ExportEncryptedPrivateKeyTool.java:165)
网上搜了一下:发现是不能用Oracle版本的jdk,因为少了一些相应的库
,需要使用OpenJDK,于是我又重新下载OpenJDK 22,重新配置环境变量,重新使用上面的命令生成.zip文件
上传到Google后台后提示如下: