Что такое файл keystore Android и для чего он используется?


Это общий вопрос, но особенно меня интересует его использование для Андроида. Что такое файл ключей и для чего он используется?

может ли несколько приложений Android использовать одно и то же хранилище ключей для подписи своего приложения (что именно означает "подписать" an .АПК?), и каковы последствия (если таковые имеются) этого?

4 108

4 ответа:

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

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

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

но помимо подписания apks для выпуска в дикую природу, вы можете использовать его для аутентификации вашего устройства на сервере через SSL, если вы этого хотите, (также связанные с Android) среди других функций.

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

С Руководство По Подписанию Приложений сайта разработчика Android:

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

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

вы можете найти дополнительную информацию о процессе подписания на официальной документации Android здесь:http://developer.android.com/guide/publishing/app-signing.html

Да, вы можете подписать несколько приложений с одним и тем же хранилищем ключей. Но вы должны помнить одну важную вещь: если вы публикуете приложение в Play Store, вы должны подписать его с сертификатом non debug. И если однажды вы хотите опубликовать обновление для этого приложения, хранилище ключей используется для подписи apk должно быть одинаковым. В противном случае вы не сможете обновлять.

вся идея keytool заключается в том, чтобы подписать ваш apk с уникальным идентификатором, указывающим на источник этого apk. Файл хранилища ключей (из того, что я понимаю) используется для отладки, поэтому ваш apk имеет функциональность keytool без подписи вашего apk для производства. Так что да, для целей отладки вы должны быть в состоянии подписать несколько apk с одним хранилищем ключей. Но поймите, что при нажатии на производство вам понадобятся уникальные keytools в качестве идентификаторов для каждого создаваемого apk.