2013-10-04 107 views
1

我正在尝试使用keytool函数创建公钥/私钥对,以便我可以向Google Play提交Android应用程序。当我尝试使用我做了密钥签署应用程序,从我的jarsignerAndroid的Keytool公钥/私钥对

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* 

回答

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 
+0

另一个区别是,你指定RSA作为keyalg。显然默认是DSA。 –

+0

的确如此,但我已经做了大量不同的变化,我应该编辑它。无论如何,我应该刚刚使用“创建签名应用程序”功能,但本教程没有提到,直到手动未签名的应用程序方法。对我来说,打耳光的时刻! –

+0

谢谢,这帮了我很大的时间! –