2013-10-04 105 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

謝謝,這幫了我很大的時間! –