Google签名文件上传jks生成zip受限处理
自2023-06-21Google新传app时,上传签名文件zip收到了提示
"The encryption key used has expired. Use a newly generated encryption key."
最终解决方案如下:
1.确定zip生成方式
因为项目是自管签名,使用jks签名,故选择第四种方式。
“Export and upload a key(not using Java keystore)”
2.按照说明生成zip
2.1 下载新提供的pepk.jar文件
2.2 下载公钥encryption_public_key.pem文件
注意,每个包的encryption_public_key.pem都需要单独下载,每个包的这个文件都不一样。不能共用
2.3 生成
cd到存放jks和刚下载的pepk.ja等文件目录,执行脚本
java -jar pepk.jar --keystore=./test.jks --alias=testname --output=./test.zip --include-cert --rsa-aes-encryption --encryption-key-path=./encryption_public_key.pem
注意,一定要从当前应用的第四种方式(Export and upload a key(not using Java keystore))的链接下载公钥gem文件。
第三种和第四种生成的指令都一样,只不过encryption_public_key.pem文件不一样。
3.上传zip
上传时,一定要删除老的,在第四种里面(Export and upload a key(not using Java keystore))上传zip
4.可能遇到的问题:
执行上述脚本生成zip时,可能会报错
Error: Unable to export or encrypt the private key
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/NONE/OAEPWithSHA1AndMGF1Padding
这个是因为当前的Java环境导致的。
使用Android studio 下载的Java,就可以。
找到对应Java路径,将设备环境变量里的Java版本设置成这个版本就ok了。