2011-10-07 29 views
34

這看起來很基本,但我無法找到任何地方的信息,特別是Android應用程序。Android APK證書 - 需要哪些字段以及如果該信息發生了變化?

我創造我的釋放鍵(自簽名),我問了大量的信息:

  • 名字和姓氏:(OK,不太可能改變)
  • 組織單位:(這是一個人的 「企業名稱」?)
  • 組織:(?這個怎麼樣不同的 「單位」 以上)
  • 城市或區域:(這可能會改變...)
  • 州或省:(也可以改變...)
  • 國家代碼(XX):(OK;不太可能改變)

考慮到這一點,我已經得到了有關用於分發Android應用自簽名證書的兩個基本問題:

  1. 在創作,我可以留下任何這些字段EMPTY,特別是那些可能會改變的字段?或者是被禁止的?(大問題)
  2. 如果我想更改給定字段後面怎麼辦?這是否意味着創建新密鑰並讓所有人重新安裝應用程序以便再次升級,即使我擁有原始密鑰?(好像是的情況下,通過什麼小我找到。判斷)提前

謝謝!


編輯:上面#1更多信息:如果這是像SSL證書什麼,然後名稱,組織機構和國家應該足夠了。但是,這是什麼情況?將任何/所有其他字段留空的利弊?我不能成爲唯一一個在應用程序方面對此感到疑惑的人......而迄今爲止我閱讀的Android文檔無法說明這一點。

#2,似乎改變了證書手段進行再生,並與新的證書籤名不避市場問題(它就像一個全新的應用程序,即使你同時與新老證書籤名)。因此,在您第一次簽署應用程序時,更正確地做到這一點非常重要(如果您的行動足夠通用)。

+0

你必須看看這個。 http://developer.android.com/guide/publishing/app-signing.html – Uttam

+3

在我問這個問題之前,我反覆做過。你看到我錯過了這些問題的答案嗎? – MartyMacGyver

回答

25

這些字段的內容實際上是非常不相關的,除了你以外,任何人都不會看到這些內容。您可以在任何keytool允許的地方留下空的字段,而不會在稍後發生。

一旦您使用密鑰庫對apk進行簽名並將其上傳到Android電子市場,您就無法用另一個密鑰庫簽署相同的包。這顯然是爲了防止別人用另一個應用替換你的應用。

對於我的密鑰存儲庫,我把我的個人信息放入其中,將到期日期設置爲將來的999年,並保持安全並備份。

+1

我認爲那就涵蓋了它。我不確定是否存在任何法律問題......如果有的話,這將是目前計劃中的一場噩夢,因爲您永遠無法更新證書,即使通過橋接(與新舊簽署直到切換到新的一段時間)。如果可以用舊證書籤名+新證書,它證明了監管鏈。今天的小偷只需要繼續使用舊的證書)。這是簡化的,但底線是,證書更新應該是可能的(並且實際上必須在SSL的世界中),但是在市場上沒有實現。 – MartyMacGyver

7

要嚴格回答有關哪些字段是可選的問題:實際上,所有字段都是可選的。唯一的要求是您至少提供一個(即使它只是國家代碼)。

下面是Android Studio中的解釋: Android Studio displaying an error message

它讀取:

至少一個證書頒發者字段是必須爲非空足夠

當然,有一些測試,我確認只需要一個字段。

正如Michael回答的,一旦你的應用發佈了,你可以永不改變它

+0

,至少當我被指示直接使用Java的keytool時,這不是必需的 – 1mike12

相關問題