Android APK сертификаты - какие поля обязательны для заполнения и что если эта информация изменится? - PullRequest
41 голосов
/ 07 октября 2011

Это кажется довольно простым, но я нигде не могу найти нужную мне информацию, особенно в отношении приложений Android.

Я создаю свой ключ разблокировки (самоподписанный), и меня просят много информации:

  • Имя и Фамилия: (ОК; вряд ли изменится)
  • Подразделение: (Это «название компании»?)
  • Организация: (Чем это отличается от "Юнит" выше?)
  • Город или населенный пункт: (Это может измениться ...)
  • Штат или провинция: (Также может измениться ...)
  • Код страны (XX): (ОК; вряд ли изменится)

Имея это в виду, у меня есть два основных вопроса о самозаверяющих сертификатах, используемых для распространения приложений Android:

  1. При создании, могу ли я оставить какое-либо из этих полей ПУСТО, особенно те, которые могут измениться? Или это запрещено? (Большой вопрос.)
  2. Что если я захочу изменить данное поле позже ? Означает ли это, что вы создаете новый ключ и заставляете всех переустанавливать приложение, чтобы когда-нибудь снова обновить его, даже если у меня есть оригинальный ключ? (Судя по тому, какой маленький у меня найден , похоже. )

Заранее спасибо!


Редактировать: Более подробная информация по № 1 выше: если это что-то вроде SSL-сертификата, тогда должно быть достаточно Имя, Организации и Страны. Но так ли это? Плюсы и минусы, оставляя какие-либо / все остальные поля пустыми? Я не могу быть единственным, кто интересуется этим с точки зрения приложений ... и документы по Android, которые я читал до сих пор, не помогают прояснить это.

Для # 2, похоже, что изменение сертификата означает его регенерацию, и подписание с этим новым сертификатом не устраняет проблему Market (это похоже на совершенно новое приложение, даже если вы подписываете оба с новыми И старыми сертификатами) , Поэтому тем более важно сделать все правильно (но достаточно универсально, если вы переедете) при первой подписи приложения.

Ответы [ 2 ]

28 голосов
/ 07 октября 2011

Содержимое этих полей на самом деле не имеет никакого значения и, как правило, никто не видит, кроме вас. Вы можете оставить пустые поля везде, где позволит keytool, без последствий позже.

После того, как вы подпишите apk с помощью хранилища ключей и загрузите его в Android Market, вы не сможете подписать этот же пакет другим хранилищем ключей. Очевидно, это сделано для того, чтобы кто-то другой не мог заменить ваше приложение другим.

Для своего хранилища ключей я поместил в него свою личную информацию, установил срок действия в будущем на 999 лет и сохранил его в целости и сохранности.

8 голосов
/ 15 января 2016

Чтобы строго ответить на вопрос о том, какие поля являются необязательными: на самом деле, все поля являются необязательными.Единственное требование - предоставить по крайней мере один (даже если это просто код страны).

Вот объяснение Android Studio: Android Studio displaying an error message

Оно гласит:

Требуется, чтобы хотя бы одно поле издателя сертификата было не пустым

Конечно, после некоторого тестирования я подтвердил, что требуется только одно поле.

Как ответил Майкл, после публикации вашего приложения вы не можете изменить его .

...