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