Для чого потрібне підписування додатків у Google Play? Крім захисту ваших ключів від утрати або зламу, реєстрація в програмі підписування додатків у Google Play відкриває вам доступ до оптимізацій для ваших файлів Android App Bundle (AAB). Дозволивши Google підписувати оптимізовані файли APK для розповсюдження, згенеровані з ваших наборів App Bundle, ви отримуєте доступ до цінних сервісів, наприклад автоматичного захисту й автоматичного перекладу текстових сегментів за допомогою моделей Gemini. Для ігор передбачено такі додаткові автоматичні сервіси, як Sidekick у Play Іграх, запуск гри під час завантаження й безкоштовні пробні версії для платних ігор.
Щоб налаштувати підписування додатків у Google Play, ви повинні мати дозвіл адміністратора.
Основні поняття
Підписування додатків у Google Play передбачає використання двох окремих ключів. Щоб уникнути проблем з автентифікацією, пов’язаних зі сторонніми API, украй важливо розуміти різницю між цими ключами і їх технічними форматами.
| Тип ключа | Місце збереження | Технічні деталі й призначення |
|
Ключ завантаження |
У вас (зберігайте його в надійному місці!) |
|
| Ключ підпису додатка |
Google Play |
|
| Підпис, адаптований до квантових обчислень | Google Play |
|
Примітка. Для максимальної безпеки ключ завантаження й ключ підпису додатка мають відрізнятися.
Як Google підписує додаток. Коли Google генерує і підписує файли APK ключем підпису додатка, за допомогою інструмента ApkSigner в маніфест додаються дві мітки (com.android.stamp.source і com.android.stamp.type). Ці мітки дають змогу безпечно відстежити оригінальне джерело підпису файлів APK.
Налаштування функції підписування додатків у Google Play
Щоб опублікувати новий або перенести наявний додаток, потрібно виконати різні дії.
Для нових додатків
- Створіть новий додаток. Для вашого додатка буде автоматично активовано гібридний підпис із підтримкою квантового захисту з використанням ключів, згенерованих Google. Ми також генеруємо окремий класичний ключ, який використовується в блоках підписів, що розпізнаються на пристроях з Android 16 і старіших версій.
- Створіть ключ завантаження. Згенеруйте сховище ключів, щоб підписати набір App Bundle для випуску. Ви можете згенерувати його в Android Studio або скористатися Java-утилітою keytool через командний рядок.
- Завантажте набір App Bundle. Відкрийте Play Console і підготуйте новий випуск. За умовчанням, коли ви завантажите набір App Bundle, для вашого додатка буде автоматично активовано гібридний підпис із підтримкою квантового захисту з використанням ключів, згенерованих Google.
- Змініть ключ підпису додатка (необов’язково). Досвідчені розробники, які хочуть самостійно керувати власним ключем, можуть скористатися цією можливістю, перш ніж випустити версію для відкритого тестування або робочу версію. Для цього виберіть Захищено за допомогою Google Play > Розповсюдження в Google Play > Перейти до підписування додатків у Google Play і натисніть Змінити ключ підпису додатка. У цьому розділі ви можете вибрати один із таких варіантів:
- використовувати той самий ключ, що й для іншого додатка в цьому обліковому записі розробника;
- надати копію вашого ключа підпису додатка (дотримуючись вказівок).
Для наявних додатків
Якщо ви зараз самостійно керуєте власними ключами й завантажуєте файли APK, то можете перейти на підписування додатків у Google Play, щоб користуватися перевагами наборів App Bundle і оптимізацій Google Play.
- У Play Console виберіть Захищено за допомогою Google Play > Розповсюдження в Google Play > Перейти до підписування додатків у Google Play.
- Прийміть умови використання, якщо ви ще цього не зробили.
- Перенесіть копію оригінального ключа. Завантажте інструмент PEPK і дотримуйтеся покрокових вказівок, щоб зашифрувати й завантажити наявний ключ підпису додатка з будь-якого сховища.
Реєстрація в постачальників API
Якщо у вашому додатку використовуються певні API (Google Maps, OAuth, Facebook Login тощо), ці сервіси автентифікують його за допомогою цифрового відбитка ключа підпису додатка.
Оскільки Google підписує остаточну версію файла APK, ви повинні зареєструвати цифровий відбиток ключа підпису додатка, який зберігається в Google, у ваших постачальників API (а не лише ключ завантаження, який зберігається на вашому пристрої).
- Виберіть Захищено за допомогою Google Play > Розповсюдження в Google Play > Перейти до підписування додатків у Google Play.
- Прокрутіть сторінку до розділу Ключ підпису додатка.
- Скопіюйте потрібні цифрові відбитки (SHA-1 або SHA-256). Якщо ваш додаток використовує гібридний підпис із підтримкою квантового захисту, скопіюйте цифрові відбитки для трьох ключів і зареєструйте кожен із них у постачальників API: новий класичний ключ і ключ PQC для новіших пристроїв, а також класичний ключ, який використовується на старіших пристроях.
- Вставте ці цифрові відбитки в консоль свого постачальника API (наприклад, консоль Google Cloud).
Підказка. Якщо ви використовуєте функцію Android App Links, додайте ці цифрові відбитки у файл assetlinks.json.
Керування ключами
Як оновити ключ підпису додатка
Якщо ваш ключ підпису додатка зламано або вам потрібен ключ із надійнішим криптографічним захистом, ви можете надіслати запит на щорічне оновлення ключа для всіх встановлень на пристроях з Android 17 (рівень API 37) і новіших версій.
Як ми забезпечуємо використання оновленого ключа в різних версіях Android
- Android 17 (рівень API 37) і новіших версій: платформа Android суворо контролює використання вашого оновленого гібридного ключа з підтримкою квантового захисту. Перегляньте схему підписів APK версії 3.2.
- Android 13 (рівень API 33) – Android 16 (рівень API 36): платформа Android суворо контролює використання вашого останнього класичного ключа. Перегляньте схему підписів APK версії 3.1.
- Android 7 (рівень API 24) – Android 12 (рівень API 32): сама платформа Android не вимагає використання оновленого ключа й досі розпізнає останній класичний ключ. Однак Google Play Захист виконує додаткові перевірки, щоб переконатися, що оновлення для додатка підписані вашим останнім класичним ключем (якщо користувач не вимкнув цю функцію).
Важливо
- Спільні дані. Оскільки використання оновленого ключа не є обов’язковою вимогою на пристроях з Android S (API 32-го рівня) і старіших версій, якщо ви використовуєте той самий ключ у кількох додатках для обміну даними, ці старіші версії Android розпізнаватимуть лише старий ключ для таких функцій, як надання спеціальних дозволів.
Щоб перейти на новий план:
- Виберіть Захищено за допомогою Google Play > Розповсюдження в Google Play > Перейти до підписування додатків у Google Play.
- У розділі "Ключ підпису додатка" натисніть Оновити ключ.
- Виберіть потрібний варіант:
- Дозволити Google Play згенерувати новий ключ підпису додатка (рекомендовано)
- Використовувати той самий ключ підпису, що й для іншого додатка в цьому обліковому записі розробника
- Надати копію вашого ключа підпису додатка (дотримуючись вказівок)
- Натисніть Зберегти.
- Зареєструйте цифрові відбитки нових ключів у своїх постачальників API. Якщо ваш додаток використовує гібридний підпис із підтримкою квантового захисту, зареєструйте цифрові відбитки для двох нових ключів: вашого нового класичного ключа й нового ключа PQC.
Як надіслати запит на скидання ключа завантаження
Якщо ви загубили ключ завантаження або підозрюєте, що його зламано, це не означає, що ви втратили доступ до свого додатка.
- Створіть новий ключ завантаження в 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 > Керуйте підписуванням додатків у Google Play.
- У розділі Сертифікат ключа завантаження натисніть Запит на скидання ключа завантаження.
- Укажіть причину скидання.
- Долучіть файл
upload_certificate.pemі натисніть Надіслати запит.
Практичні поради й альтернативні способи розповсюдження
- Безпека. Захистіть доступ до Play Console, увімкнувши двохетапну перевірку для всіх користувачів.
- Оптимізації для наборів App Bundle. Зареєструвавшись у програмі підписування додатків у Google Play, ви отримаєте доступ до оптимізацій для ваших наборів App Bundle. Щоб скористатись оптимізаціями, спершу внесіть необхідні зміни в конфігурацію під час створення нового випуску, а потім завантажте новий набір App Bundle.
- Розповсюдження за межами Google Play. Якщо ви розповсюджуєте додаток через інші магазини додатків і хочете скрізь використовувати той самий ключ підпису, це можна зробити двома способами. [1] Ви можете дозволити Google згенерувати ключ підпису додатка й завантажити підписаний універсальний файл APK із Play Console або Play Developer API, щоб розповсюджувати додаток в інших магазинах (у Play Console перейдіть у розділ Тестування й випуск > Останні випуски й набори, виберіть набір App Bundle і перейдіть на вкладку Завантаження). [2] Або ж ви можете згенерувати ключ підпису додатка, який використовуватиметься в усіх магазинах додатків, і завантажити його в Google під час налаштування функції підписування додатків у Google Play. Дізнайтеся більше про оновлення додатків і те, як увімкнути або вимкнути синхронні оновлення додатка в різних магазинах.
- Тестування. Використовуйте внутрішній доступ до додатків, щоб протестувати саме ту версію додатка, яку Google Play доставляє на пристрої користувачів, або завантажте оптимізовані для конкретних пристроїв файли APK через App Bundle Explorer й встановіть їх на своєму пристрої за допомогою команди adb install-multiple *.apk.
- Схема підписів APK версії 4. Функція підписування додатків у Google Play автоматично використовує підписи версії 4 для додатків, які відповідають вимогам, у рамках підтримки оптимізованого розповсюдження на пристроях з Android 11 і новіших версій. Вам не потрібно нічого робити. Це стосується всіх додатків, які використовують гібридний підпис, адаптований до квантових обчислень, оскільки він ще не сумісний із підписом версії 4. Докладнішу інформацію про технічні переваги цієї схеми наведено в документації.
Проєкти Google Cloud із самостійним керуванням
Якщо у вас є особливі вимоги до безпеки (наприклад, ви використовуєте ключі OEM), ви можете зареєструватися в сервісі підписування додатків у Google Play за допомогою Play Developer API і проєкту Google Cloud із самостійним керуванням.
Це нестандартний варіант, який ми не рекомендуємо використовувати. Використання проєкту із самостійним керуванням означає, що ви берете на себе повну відповідальність за підписування додатків.
- Це перешкоджає роботі критично важливих функцій Google Play, наприклад аварійного відновлення.
- Google не може повторно згенерувати або виправити наявний випуск. Щоб виправити помилки у випуску, вам потрібно завантажити новий випуск.
- У цій конфігурації можуть бути недоступні розширені оптимізації, певні покращення Google Play і функції безпеки, такі як гібридний підпис із підтримкою квантового захисту.
- Згенеруйте або імпортуйте свої ключі підпису в Cloud KMS, вибравши для місцеположення варіант multi-region US, і дотримуйтеся вказівок у документації з імпорту ключів KMS.
- Щоб змінити ключ підпису, скористайтеся методом enrollApp. Ключі підпису можна змінити, лише доки додаток не опубліковано у версії для відкритого тестування або робочій версії.
- Щоб оновити ключ підпису після публікації, скористайтеся методом rotateAppSigningKey.
- Призначте наведені нижче ролі IAM клієнту або сервісному обліковому запису, який проходить автентифікацію в Google Play Developer API:
- Переконайтеся, що ви маєте достатню квоту для виконання криптографічних операцій. Зокрема, ми радимо збільшити квоту для asymmetric_requests принаймні до 350 QPS.
- Щоб дізнатися, як використовуються ключі підпису, увімкніть журнали аудиту у своєму проєкті Cloud KMS.