2013-03-07 61 views
0

所以我有一個市場上的Android應用程序,現在我需要更新它。我一直在試圖簽署新的APK,但遇到困難。使用keystore和Android簽名問題

我有密鑰庫,並且使用keytool -list -v -keystore deployment.keystore驗證它包含正確的證書。密鑰庫沒有密碼,不記得那樣做,但你去了。如果我輸入任何內容,則會出現錯誤,如果我不接受該命令並列出所包含的證書。

現在的問題是,當試圖在Eclipse中導出apk文件時,使用導出嚮導,我不允許在密鑰庫上沒有密碼,因此我無法獲取裏面的憑據。所以我試圖運行以下內容以嘗試更改密鑰庫keytool -storepasswd -keystore deployment.keystore上的密碼。我被要求輸入密碼,並且空字符串密碼和我想要設置的新密碼都不被接受。如果它的長度爲6個字符,我會再次提示,如果其> 6個字符,則會出現以下錯誤:keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect

現在我不知所措,並尋求SO的集體知識來幫助我。

UPDATE:我現在已經導出了證書,然後再將它導入到一個新的密鑰庫成功。現在的問題是,當我嘗試簽名時,我在Eclipse中獲得了Unhandled event loop exception。有任何想法嗎?

UPDATE 2:試圖通過終端簽名以避免Eclipse拋出的異常提出了新問題。我正在嘗試以下內容:jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore new.keystore myApp.apk myAlias。我只有我的新密鑰庫中有證書,但沒有私鑰,因此我一直試圖通過運行keytool -importkeystore -srckeystore deployment.keystore -destkeystore myKeystore.p12 -deststoretype PKCS12將它們從舊密鑰庫導出爲p12。

現在我得到以下警告:

******* WARNING WARNING WARNING *******

The integrity of the information stored in the srckeystore* * has NOT been verified! In order to verify its integrity, * * you must provide the srckeystore password.

******* WARNING WARNING WARNING *******

這現在提示我要爲這是空字符串srckeystore密碼。這是我似乎陷入的一些循環孔!

更新3: 我現在已經成功地使用指令-storepass餵養改變了原有的存儲密碼。不過,現在系統會提示您輸入密鑰庫中實際的私鑰/公鑰對的keypass。我不記得設置這些,即使我已經閱讀they default to the keystore password if not set他們不接受我輸入的任何內容。我的搜索繼續。

-MrDresden

+0

你嘗試從控制檯運行導出嗎?也許在控制檯,你可以有空白密碼...否則DAMN :) – Daler 2013-03-07 11:30:22

+0

嗯,我只是想出了出口選項,只要我發佈的問題,所以工作。我現在用密碼創建了一個新的密鑰庫,並將證書導入到密鑰庫中。但是現在我試圖用證書籤名,我在Eclipse中得到了「未處理的事件循環異常」......確實如此。當鳴則已一鳴驚人! – Hrafn 2013-03-07 11:40:17

+0

您是否使用新的密鑰庫從控制檯嘗試過它 - 也許這是一個日食問題?也嘗試更新eclipse中的Android插件 - 也許有一個可用的新版本?否則... DAMNED ;-) – Ridcully 2013-03-07 12:39:07

回答

0

嘗試一些不同的東西后,我們結束了從一個新的密鑰庫新密鑰重新發布應用程序。幸運的是,它只出現了幾個小時,並沒有得到提升,所以只有大約10個用戶受到影響。這仍然是很多。

畢竟,我們已經開始設置Maven,所有的發佈只會在Maven服務器編譯和簽名應用程序之後完成。一切都備份完畢,所有的密碼不斷寫下來等。