web-dev-qa-db-ja.com

Android APK証明書-どのフィールドが必要で、その情報が変更された場合はどうなりますか?

これはかなり基本的なようですが、特にAndroidアプリに関して)探している情報がどこにも見つかりません。

私は自分のリリースキー(自己署名)を作成しており、多くの情報を求められます。

  • 姓名:(OK、変更される可能性は低い)
  • 組織単位:(これは「ビジネス名」ですか?)
  • Organization:(これは上の「Unit」とどう違うのですか?)
  • 市または地方:(これは変更される場合があります...)
  • 都道府県:(変更される場合もあります...)
  • 国コード(XX):(OK、変更される可能性は低い)

それを念頭に置いて、Androidアプリを配布するために使用される自己署名証明書について、2つの基本的な質問があります。

  1. 作成時に、これらのフィールド、特に変更される可能性のあるフィールドをEMPTYのままにすることはできますか?それとも禁止されていますか?(大きな質問です。)
  2. 特定のフィールドを変更したい場合後で?これは、新しいキーを作成し、誰もがアプリを再インストールして再びアップグレードするようにすることを意味します、私が元のキーを持っている場合でも(私が持っているものが何を見つけたかで判断すると、そうであるようです。)

前もって感謝します!


編集:上記の#1に関する詳細情報:これがSSL証明書のようなものである場合、名前、組織、国で十分です。しかしISその場合?他のすべてのフィールドを空白のままにすることの長所と短所?アプリの観点からこれについて疑問に思っているのは私だけではありません...そして= Androidこれまでに読んだドキュメントは、これを明確にするのに役立ちません。

#2の場合、証明書を変更すると再生成することを意味し、その新しい証明書で署名しても市場の問題は回避されません(新しい証明書と古い証明書の両方で署名したとしても、まったく新しいアプリのようです)。そのため、アプリに初めて署名するときは、それを正しくすることが重要です(移動する場合でも十分に一般的です)。

44
MartyMacGyver

これらのフィールドの内容は実際にはかなり無関係であり、一般的にあなた以外の誰にも見られません。 keytoolが許可するところであれば、後で何の影響もなく空のフィールドを残すことができます。

キーストアを使用してAPKに署名し、Android Marketにアップロードすると、別のキーストアを使用して同じパッケージに署名することはできません。これは、他の誰かがアプリを別のキーストアに置き換えないようにするためです。

私のキーストアには個人情報を入れて、有効期限を999年後に設定し、安全に保管してバックアップします。

28
Michael Pardo

どのフィールドがオプションであるかという質問に厳密に答えるために、実際には、allフィールドはオプションです。唯一の要件は、少なくとも1つを提供することです(たとえ国コードであっても)。

Android Studioの説明: Android Studio displaying an error message

それは読む:

空ではない証明書発行者フィールドが少なくとも1つ必要です

案の定、いくつかのテストで、必要なフィールドは1つだけであることを確認しました。

Michaelが回答したように、アプリが公開されたら、変更することはできません

9
Paul Lammertsma