Преимущества функции подписания приложений в Google Play. Она не только защищает ваши ключи от потери или взлома, но и позволяет использовать улучшения для наборов Android App Bundle (.aab). Если вы разрешите Google подписывать оптимизированные APK-файлы, созданные из наборов App Bundle, то получите доступ к таким полезным сервисам, как автоматическая защита и автоматический перевод интерфейса с помощью моделей Gemini. Для игр открываются дополнительные автоматические сервисы, такие как Play Games Sidekick, запуск игры во время скачивания и бесплатные пробные периоды для платных игр.
Настроить функцию подписания приложений в Google Play может только владелец аккаунта или тот, у кого есть разрешение на выпуск рабочей версии, исключение устройств и использование функции подписания приложений. При этом необходимо принять Условия использования.
Основные понятия
Если вы используете функцию подписания приложений в Google Play, то работаете с двумя разными ключами. Чтобы избежать проблем с аутентификацией при работе со сторонними API, важно понимать разницу между этими ключами и их технические форматы.
| Тип ключа | У кого находится ключ | Технические сведения и назначение |
|
Ключ загрузки |
Вы (храните его в надежном месте) |
|
| Ключ подписи приложения |
Google Play |
|
Примечание. В целях безопасности ключ загрузки и ключ подписи приложения должны быть разными.
Как Google подписывает приложение. Создавая и подписывая ваши APK-файлы ключом подписи приложения, Google использует apksigner, чтобы добавить в манифест приложения метки com.android.stamp.source и com.android.stamp.type. Эти метки позволяют безопасно отслеживать, кто подписал APK-файлы.
Как настроить функцию подписания приложений в Google Play
Процесс настройки зависит от того, публикуете ли вы новое приложение или переносите существующее.
Для новых приложений
- Создайте ключ загрузки. Сгенерируйте хранилище ключей для подписи наборов App Bundle. Вы можете сделать это в Android Studio или использовать утилиту Java keytool в командной строке.
- Загрузите набор App Bundle. Откройте Play Console и подготовьте новый выпуск. По умолчанию при загрузке набора App Bundle автоматически создается криптостойкий 4096-битный ключ RSA для управления приложением и его защиты. Разработчики более 90 % новых приложений используют этот рекомендуемый вариант. Чтобы его настроить, не нужно выполнять никаких дополнительных действий.
- Измените ключ подписи приложения (необязательно). Опытные разработчики, которые хотят управлять собственным ключом, могут изменить значение по умолчанию. Для этого нажмите Изменить ключ подписи в разделе Целостность приложения на странице выпуска или выберите Защищено Google Play > Распространение в Google Play > Перейти к подписанию приложений в Google Play. Затем вы можете:
- Использовать тот же ключ, что и для другого приложения в этом аккаунте разработчика.
- Предоставить копию ключа подписи приложения. Сначала скачайте открытый ключ шифрования Google из Play Console. Затем с помощью инструмента PEPK зашифруйте и загрузите существующий ключ RSA (2048 бит или выше) из любого хранилища. Вы можете скачать скомпилированный инструмент или его исходный код непосредственно из Play Console, чтобы проверить или скомпилировать его самостоятельно.
Для существующих приложений
Если вы управляете собственными ключами и загружаете APK-файлы, вы можете перейти на подписание приложений в Google Play, чтобы использовать наборы App Bundle и улучшения Google Play.
- В Play Console выберите Защищено Google Play > Распространение в Google Play > Перейти к подписанию приложений в Google Play.
- Примите Условия использования, если вы ещё этого не сделали.
- Передайте копию оригинального ключа. Скачайте инструмент PEPK и следуйте инструкциям, чтобы зашифровать и загрузить существующий ключ подписи приложения из любого хранилища.
Как зарегистрировать ключ у поставщиков API
Если в вашем приложении используются API (например, Google Карт, OAuth или Facebook Login), эти сервисы аутентифицируют приложение с помощью отпечатка ключа подписи.
Поскольку Google подписывает финальный APK-файл, помимо локального ключа загрузки вам нужно зарегистрировать у поставщиков API цифровой отпечаток ключа подписи приложения, который хранится у Google.
- Выберите Защищено Google Play > Распространение в Google Play > Перейти к подписанию приложений в Google Play.
- Прокрутите экран до раздела Ключ подписи приложения.
- Скопируйте нужные цифровые отпечатки (SHA-1 или SHA-256).
- Вставьте их в консоль поставщика API, например Google Cloud.
Совет. Если вы используете ссылки на приложения для Android, добавьте эти отпечатки в файл assetlinks.json.
Как управлять ключами
Как обновить ключ подписи приложения
Если ваш ключ подписи приложения был взломан или вам нужен более криптостойкий ключ, каждый год вы можете запросить его обновление для всех установок на устройствах с Android N (API уровня 24) и более поздними версиями.
Как работает принудительное применение обновленного ключа в разных версиях Android
- Android T (API уровня 33) и более поздние версии. Платформа Android принудительно применяет обновленный ключ.
- Android N (API уровня 24) — Android S (API уровня 32). Платформа Android не применяет обновленный ключ принудительно и по-прежнему распознает устаревший ключ подписи. Однако если пользователь не отключит эту функцию, Google Play Защита будет выполнять дополнительную проверку, чтобы убедиться, что обновления приложения подписаны обновленным ключом.
Важно!
- Обмен данными. На устройствах с Android S (API уровня 32) и более ранними версиями обновленный ключ не используется принудительно. Поэтому если вы применяете один и тот же ключ в нескольких приложениях для обмена данными, то на этих устройствах при работе таких функций, как обмен специальными разрешениями, будет распознаваться только устаревший ключ.
Как обновить ключ
- Выберите Защищено Google Play > Распространение в Google Play > Перейти к подписанию приложений в Google Play.
- В разделе "Ключ подписи приложения" нажмите Обновить ключ.
- Выберите один из вариантов:
- Разрешить Google Play создать новый ключ подписи приложения (рекомендуется).
- Использовать ключ подписи другого приложения из этого аккаунта разработчика.
- Предоставить копию ключа подписи приложения (следуйте инструкциям).
- Нажмите Сохранить и зарегистрируйте новые отпечатки ключа у поставщиков API.
Как запросить сброс ключа загрузки
Если вы потеряли ключ загрузки или подозреваете, что он был взломан, вы не потеряете доступ к приложению.
- Создайте новый ключ загрузки в Android Studio.
- Экспортируйте сертификат в формате PEM:
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
(Дополнительную информацию об инструменте keytool и путях к хранилищу ключей можно найти в руководстве по подписи приложений в Android Studio.) - После того как вы создадите PEM-файл, в Play Console отправьте запрос на сброс.
- Выберите Защищено Google Play > Защита Google Play > Управление функцией подписания приложений.
- В разделе Сертификат ключа загрузки нажмите Отправить запрос на сброс ключа загрузки.
- Укажите причину сброса.
- Загрузите файл
upload_certificate.pemи нажмите Запросить.
Рекомендации и другие способы распространения
- Безопасность. Защитите доступ к Play Console, включив двухэтапную аутентификацию для всех пользователей.
- Улучшения Google Play. Зарегистрировавшись в программе подписания приложений, вы сможете использовать улучшения, которые мы предлагаем для наборов App Bundle. Для этого сначала внесите необходимые изменения при создании нового выпуска, а затем загрузите новый набор App Bundle.
- Распространение за пределами Google Play. Если вы распространяете приложение через другие магазины и хотите использовать один и тот же ключ подписи, у вас есть два варианта. Вы можете разрешить Google сгенерировать ключ подписи приложения и скачать подписанный универсальный APK-файл из последних релизов и пакетов, чтобы распространять его в других местах (перейдите в раздел Тестирование и выпуск > Последние выпуски и наборы, выберите набор App Bundle и нажмите на вкладку Скачанные файлы). Также вы можете сгенерировать ключ подписи приложения, который будете использовать во всех магазинах, и загрузить его копию в Google при настройке функции подписания приложений в Google Play.
- Тестирование. Чтобы проверить, что именно Google Play будет отправлять пользователям, используйте внутренний доступ к приложению. Также вы можете скачать APK-файлы для определенных устройств из App Bundle Explorer и установить их локально с помощью команды adb install-multiple *
.apk. - Схема подписания APK версии 4. Функция подписания приложений в Google Play автоматически использует эту схему для поддерживаемых приложений, чтобы оптимизировать их распространение на устройствах с Android 11 и более поздних версий. Никаких действий с вашей стороны не требуется. Подробнее о технических преимуществах можно узнать из документации по схеме подписания APK версии 4.
- Проекты Google Cloud, размещенные на вашем сервере. Если у вас есть особые требования к безопасности (например, использование ключей OEM), вы можете зарегистрировать проект Google Cloud, размещенный на вашем сервере, в программе подписания приложений с помощью Play Developer API. Примечание. Это нестандартная конфигурация, и мы не рекомендуем ее использовать. Если проект размещен на вашем сервере, вы будете нести полную ответственность за подписание приложений, а Google Play не сможет выполнять важные функции, например аварийное восстановление.