适用于Android的Keytool公钥/私钥对

时间:2013-10-04 17:46:12

标签: android google-play rsa public-key-encryption dsa

我正在尝试使用keytool功能创建公钥/私钥对,以便我可以向Google Play提交Android应用。当我尝试使用我制作的密钥对应用程序进行签名时,我从jarsigner

中收到此错误
jarsigner: Certificate chain not found for: SHA1withDSA.  
SHA1withDSA must reference a valid KeyStore 
key entry containing a private key and corresponding public key certificate chain.

当我尝试使用RSA时也一样。当我查看密钥库的密钥时,我只看到了      条目类型:PrivateKeyEntry

不是公钥和私钥。

我用来创建密钥的命令是

keytool -genkey -keystore nameofkeystore.keystore 
-alias coffitivity -keypass *passwordommitted* -storepass *thepasswordommitted*

1 个答案:

答案 0 :(得分:3)

我实际上并不是100%确定我做了什么来修复它,但这就是我所做的,现在它的工作原理

keytool -genkeypair -v -keystore my-release-key.keystore 
-alias coffdroid -keyalg RSA -keysize 2048 -validity 10000

注意:区别是我使用“-genkeypair”而不是“genkey”,即使它们应该是相同的

第二:做了一个新的无符号.apk。这很可能是修正它的原因 - 所以如果你正在撞墙,那就去做吧。

然后是Jarsigner

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 
-keystore my-release-key.keystore /Users/tommynicholas/Desktop/*apkname*.apk coffdroid