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

适用于Android的Keytool公钥/私钥对,android,google-play,rsa,public-key-encryption,dsa,Android,Google Play,Rsa,Public Key Encryption,Dsa,我正在尝试使用keytool功能创建一个公钥/私钥对,这样我就可以向googleplay提交一个Android应用程序。当我尝试使用我制作的密钥对应用程序进行签名时,我从jarsigner处收到此错误 jarsigner: Certificate chain not found for: SHA1withDSA. SHA1withDSA must reference a valid KeyStore key entry containing a private key and corres

我正在尝试使用keytool功能创建一个公钥/私钥对,这样我就可以向googleplay提交一个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*

我不是100%确定我做了什么来修复它,但这就是我做的,现在它工作了

keytool -genkeypair -v -keystore my-release-key.keystore 
-alias coffdroid -keyalg RSA -keysize 2048 -validity 10000
注意:区别在于我使用“-genkeypair”而不是“genkey”,即使它们应该是相同的

第二:创建一个新的unsigned.apk。这很可能是修复它的方法——因此,如果你撞到了墙,那就重做一遍

然后是贾西纳

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

另一个区别是您将RSA指定为keyalg。显然默认的是DSA.True,但是我已经用它做了很多不同的变化,我应该编辑它。无论如何,我应该只使用“创建签名应用程序”函数,但是教程直到手动的未签名应用程序方法之后才提到这一点。给我一记耳光!谢谢,这帮了我大忙!