Могу ли я использовать один и тот же файл хранилища ключей для подписи двух разных приложений?



Я должен загрузить новое приложение, это просто дизайн, который немного отличается. Вчера я сгенерировал файл хранилища ключей для подписи приложений. Могу ли я использовать то же самое?

461   6  

6 ответов:

можно использовать keystore для любого числа применений.

нет необходимости создавать новое хранилище ключей.

официальная документация говорит нам:

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

https://developer.android.com/studio/publish/app-signing.html#considerations

Так что да, попробуйте подписать все ваши приложения с тем же сертификат.

Я приведу контраргумент к консенсусному ответу до сих пор.

Я согласен, что для большинства авторов приложений большую часть времени совместное использование одного и того же хранилища ключей/сертификата/пароля между вашими приложениями будет работать нормально. Самое главное-использовать "один и тот же сертификат на протяжении всего срока службы вашего приложения " таким образом, приложение может обновить себя.

но у меня есть одна очень хорошая причина, чтобы иметь отдельные хранилища для отдельных приложений или приложений. Если вы думаете, что когда-нибудь захотите продать приложение кому-то другому, чтобы они опубликовали его как обновление до оригинала, вам придется поделиться с ними своим единственным хранилищем ключей и паролем. Вероятно, не огромная проблема, но немного беспокойства для вас и, возможно, проблема должной осмотрительности для достаточно большого покупателя.

кроме того, я действительно не читаю ту же строку в документации так же, как это делает @ol_v_er. Я думаю, что текущая строка:

вы должны записать все ваши приложения с одинаковым сертификатом в течение ожидаемого срока службы ваших приложений.

(обратите внимание на отсутствие запятой в текущей версии) просто подчеркивает, что "пожизненная" рекомендация применяется ко всем приложениям, а не фактически направляет вас на использование одного и того же сертификата для всех ваших приложений.

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

хранилище ключей-это просто средство для безопасного хранения пары открытых / закрытых ключей, которая используется для подписи ваших Android apks. Так что да, вы можете использовать то же самое keystore подписать несколько apks, без проблем. Вы также можете использовать один и тот же псевдоним (каждый псевдоним является сертификатом) для подписи нескольких apks, и он будет работать. Однако это имеет последствия для безопасности. Если ваш единственный псевдоним скомпрометирован, то все ваши приложения будут скомпрометированы.

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

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

ссылки:

понимание хранилища ключей, сертификатов и псевдоним

https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores

конечно! Вы можете использовать один и тот же файл хранилища ключей столько раз, сколько хотите. Всегда лучше использовать один и тот же файл хранилища ключей для всех разрабатываемых приложений. Это поможет, если вы хотите обновить или изменить применение. В это время вам нужно подписать ваше заявление с тем же ключом.

Я подписываю все мои приложения, используя один и тот же сертификат (keystore). Это дает преимущество, если я передумаю и хочу, чтобы мои приложения делились своими данными.

Как вы знаете, Android идентифицирует каждое приложение с помощью UID. Если все ваши приложения подписаны одним и тем же сертификатом, вы можете запросить android назначить один и тот же идентификатор пользователя более чем одному приложению и заставить их работать в одном процессе и обмениваться данными.

из Android doc android: sharedUserId

android: sharedUserId

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

Comments

    Ничего не найдено.