Как работать с ключами подписи APK файлов

Подписи приложений Android

RuStore поддерживает один формат приложений — это файлы с расширением .APK.

Каждый .APK-файл должен быть подписан цифровым сертификатом, который Android использует для идентификации автора приложения. Подпись необходимо хранить так же надёжно, как и личный пароль. 

Как Android проверяет версии?

Android сравнивает цифровые отпечатки сертификатов каждого подписанного .APK-файла.

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

Цифровой отпечаток имеет примерно такой вид:

43:51:43:a1:b5:fc:8b:b7:0a:3a:a9:b1:0f:66:73:a8

 

Почему пользователи не могут обновить приложения?

Одна из распространённых ошибок паблишеров — это использование разных подписей для приложения, публикуемого в RuStore и других сторах.

Например, первоначально загружаемая версия приложения подписана одним сертификатом. А следующая версия подписана — другим. Из-за этих различий Android не позволяет установить обновления для этого приложения.

Почему так происходит:

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

  1. Разработчики могут публиковать одно и то же приложение в разных магазинах. Например, изначально разработчик публиковал приложения в Google Play и использовал один сертификат. Но после перехода в RuStore начал использовать другой сертификат. 

Таким образом, создаётся два множества пользователей: первое, кто установили приложение из Google Play, и второе — загрузивших из RuStore.

Если пользователь установил RuStore и хочет обновить приложение, которое ранее было загружено из Google Play, — он не сможет этого сделать из-за разных сертификатов.

 

Как можно решить данную проблему?

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

  1. Радикальный способ — просить пользователей удалить «старые» версии приложения, которые не удаётся обновить, и просить скачать новые. Но такой способ связан с риском потери части аудитории.

  1. Также с помощью технической поддержки RuStore можно обновить подпись приложения. Подробно описано в разделе ниже.

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

Если вы используете Google Play App Signing, позволяющая Google Play самостоятельно генерировать и хранить подпись, то можете столкнуться с отсутствием возможности использования сертификата вне Google Play.

 

Как решить проблему через поддержку RuStore?

Если необходимо обновить подпись, то напишите соответствующее письмо в техподдержку на support@rustore.ru 

Специалисты заведут обращение и проверят принадлежность приложения к обратившемуся разработчику.

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

 

Обновлено 26 апреля 2023 г.
Was this information helpful?