Як користуватися функцією підписування додатків у Google Play

За допомогою цієї функції Google керує ключем підпису вашого додатка, а також захищає цей ключ і застосовує до оптимізованих файлів APK для розповсюдження, які генеруються з наборів App Bundle. Ця функція зберігає ключ підпису додатка в безпечній інфраструктурі Google і дає змогу оновлювати його для кращого захисту.
 

Щоб користуватися функцією підписування додатків у Google Play, ви повинні бути власником облікового запису (або мати дозвіл на випуск робочої версії, виключення пристроїв і підписування додатків у Google Play) і прийняти Умови використання.

Як це працює

Якщо ви використовуєте підписування додатків у Google Play, ваші ключі зберігаються в тій самій безпечній інфраструктурі, що й ключі Google. Ключі захищає сервіс керування ключами Google. Щоб дізнатися більше про інфраструктуру Google, перегляньте документацію із захисту інформації в Google Cloud.

Додатки для Android підписуються секретним ключем. Щоб забезпечити надійність оновлень додатків, кожен секретний ключ зв’язується із загальнодоступним сертифікатом. За його допомогою пристрої і сервіси можуть перевіряти джерело оновлень додатка. Пристрої приймають лише ті оновлення, підпис яких збігається з підписом установленого додатка. Якщо ви доручите Google керувати ключем підпису додатка, процес стане безпечнішим.

Примітка. Для додатків, створених до серпня 2021 року, як і раніше, можна завантажувати файли APK, а не Android App Bundle, і керувати власними ключами, замість того щоб використовувати функцію підписування додатків у Google Play. Однак якщо ваше сховище ключів буде недоступне або зламане, ви не зможете оновити свій додаток. Вам доведеться опублікувати новий із новою назвою пакета. У таких випадках радимо використовувати функцію підписування додатків у Google Play і набори App Bundle.

Описи ключів, артефактів і інструментів
Термін Опис
Ключ підпису додатка

Ключ, яким Google Play підписує файли APK, що доставляються на пристрій користувача. Якщо ви використовуєте підписування додатків у Google Play, ви можете завантажити наявний ключ підпису додатка або Google створить його для вас.

Не повідомляйте нікому ключ підпису додатка. Натомість загальнодоступний сертифікат додатка можна надати будь-кому.

Ключ завантаження

Ключ, яким ви підписуєте набір App Bundle, перш ніж завантажити його в Google Play. Не повідомляйте нікому ключ завантаження. Натомість загальнодоступний сертифікат додатка можна надати будь-кому. З міркувань безпеки радимо використовувати різні ключі для підписання й завантаження додатка.

Створити ключ завантаження можна двома способами.

  • Використати ключ підпису додатка. Якщо ви вказали, що ключ підпису має створити Google, то ключем завантаження буде ключ, яким ви підписали перший випуск.
  • Створити окремий ключ завантаження. Якщо ви надали власний ключ підпису додатка, то для кращого захисту можете створити новий ключ завантаження. Однак випуски можна буде підписувати й ключем підпису додатка.
Сертифікат (.der або .pem)

Сертифікат містить загальнодоступний ключ і додаткові ідентифікаційні дані про його власника. За сертифікатом загальнодоступного ключа будь-хто зможе перевірити, хто підписав набір App Bundle або файл APK. Ви можете надавати цей сертифікат будь-кому, адже він не містить вашого секретного ключа.

Щоб зареєструвати ключі в постачальників API, ви можете завантажити загальнодоступний сертифікат ключів підпису й завантаження зі сторінки Підписування додатків у Google Play (Тестування й випуск > Налаштування > Підписування додатків) у Play Console. Сертифікат відкритого ключа можна надавати будь-кому. Він не містить секретного ключа.

Цифровий відбиток сертифіката

Коротке й унікальне представлення сертифіката, яке часто запитують постачальники API разом із назвою пакета, щоб зареєструвати додаток для використання своїх сервісів.

Цифрові відбитки MD5, SHA-1 і SHA-256 сертифікатів завантаження й підпису додатка можна знайти на сторінці Підписування додатків у Google Play (Тестування й випуск > Налаштування > Підписування додатків) у Play Console. На цій самій сторінці можна завантажити оригінальний сертифікат (.der), щоб створити цифрові відбитки інших типів.
Сховище ключів Java (.jks або .keystore) Сховище сертифікатів безпеки й секретних ключів.
Інструмент Play Encrypt Private Key (PEPK)

Інструмент, за допомогою якого можна експортувати секретні ключі зі сховища Java й зашифрувати їх для перенесення в Google Play.

Надаючи Google ключ підпису додатка, виберіть опцію експорту й завантаження ключа (і його загальнодоступного сертифіката, якщо потрібно), а потім дотримуйтеся вказівок, щоб завантажити інструмент і скористатися ним. Або можна завантажити й переглянути відкритий код інструмента PEPK і скористатися ним.

Підписування додатків

Нижче наведено етапи цієї процедури.

  1. Ви підписуєте набір App Bundle і завантажуєте його в Play Console.
  2. Google створює оптимізовані файли APK із вашого набору App Bundle і підписує їх ключем підпису додатка.
  3. Google включає в маніфест додатка дві мітки (com.android.stamp.source і com.android.stamp.type), використовуючи інструмент apksigner, а потім підписує файли APK ключем підпису додатка. Мітки, додані за допомогою apksigner, дають змогу визначити, хто підписав файли APK.
  4. Google доставляє підписані файли APK користувачам.

Як налаштувати підписування додатків у Google Play і керувати ним

Якщо ваш додаток ще не використовує цю функцію, виконайте наведені нижче дії.

Крок 1. Створіть ключ завантаження

  1. Створіть ключ завантаження, дотримуючись вказівок.
  2. Підпишіть набір App Bundle ключем завантаження.

Крок 2. Підготуйте випуск

  1. Підготуйте й опублікуйте випуск, дотримуючись вказівок.
  2. Коли ви виберете тип версії, у розділі "Цілісність додатка" з’явиться статус функції підписування додатків у Google Play.
  3. Щоб продовжити з ключем підпису додатка, згенерованим Google, завантажте набір App Bundle. Ви також можете натиснути Змінити ключ підпису додатка, щоб отримати доступ до наведених нижче варіантів.
    • Використовувати ключ підпису додатка, згенерований Google. У понад 90% нових додатків використовуються ключі підпису, створені Google. Такі ключі не можна завантажити. Це забезпечує захист від утрати або зламу. Якщо ви виберете цей варіант, то для інших каналів розповсюдження зможете завантажити з App Bundle Explorer файли APK, підписані згенерованим Google ключем, або використати для них інший ключ.
    • Використовувати інший ключ підпису додатка. Для зручності ви можете використовувати один ключ підпису для кількох додатків у своєму обліковому записі розробника або зберігати локальну копію ключа. Наприклад, вибір ключа може бути зумовлений тим, що додаток попередньо встановлюється на деяких пристроях. Зберігання копії ключа за межами серверів Google підвищує ризик зламу. Якщо ви хочете використовувати інший ключ підпису, доступні наведені нижче варіанти.
  4. Виконайте решту вказівок, щоб підготувати й опублікувати випуск.

Примітка. Щоб продовжити, потрібно прийняти Умови використання й увімкнути функцію підписування додатків.

Крок 3. Зареєструйте ключ підпису додатка в постачальників API

Як правило, якщо в додатку використовуються API, потрібно зареєструвати ключ підпису в їх постачальників за відбитком сертифіката ключа. Нижче описано, як знайти сертифікат.

  1. Відкрийте Play Console і перейдіть на сторінку Підписування додатків у Google Play (Тестування й випуск > Налаштування > Підписування додатків).
  2. Прокрутіть до розділу "Сертифікат ключа підпису додатка" й скопіюйте цифрові відбитки (MD5, SHA-1 і SHA-256) свого сертифіката.
    • Якщо постачальник API вимагає інший тип цифрового відбитка, ви також можете завантажити оригінальний сертифікат у форматі .der і конвертувати його за допомогою інструментів перетворення, які вкаже постачальник API.
Вимоги до ключа підпису додатка

Якщо ви вирішите використовувати ключ, створений Google, для вас буде автоматично згенеровано криптографічно надійний 4096-бітний ключ RSA. Якщо ви хочете завантажити власний ключ підпису додатка, використовуйте ключ RSA розміром не менше ніж 2048 бітів.

Інструкції для додатків, створених до серпня 2021 року

Крок 1. Налаштуйте підписування додатків у Google Play

  1. Відкрийте Play Console і перейдіть на сторінку Підписування додатків у Google Play (Тестування й випуск > Налаштування > Підписування додатків).
  2. Якщо потрібно, перегляньте Умови використання функції підписування додатків у Google Play і натисніть Прийняти.

Крок 2. Надішліть у Google копію оригінального ключа й створіть ключ завантаження

  1. Знайдіть оригінальний ключ підпису додатка.
  2. Відкрийте Play Console і перейдіть на сторінку Підписування додатків у Google Play (Тестування й випуск > Налаштування > Підписування додатків).
  3. Виберіть варіант експорту й завантаження, який найкраще відповідає вашій процедурі випуску, і додайте наявний ключ підпису додатка.

Крок 3. Створіть ключ завантаження (необов’язково, але рекомендовано)

  1. Створіть ключ завантаження й завантажте сертифікат у Google Play.
    • Ви також можете надалі використовувати ключ підпису додатка як ключ завантаження.
  2. Скопіюйте цифрові відбитки (MD5, SHA-1 і SHA-256) сертифіката підпису додатка.
    • Для цілей тестування, можливо, потрібно буде зареєструвати сертифікат ключа завантаження в постачальників API, скориставшись цифровим відбитком і ключем підпису.

Крок 4. Підпишіть наступне оновлення додатка ключем завантаження

Оновлення додатка, які ви випускаєте, потрібно підписувати ключем завантаження.

  • Якщо ви не створили новий ключ завантаження: продовжуйте підписувати набори App Bundle оригінальним ключем, перш ніж завантажувати їх у Google Play. Якщо ви втратите оригінальний ключ підпису додатка, то зможете створити новий ключ завантаження й зареєструвати його в Google, щоб надалі оновлювати додаток.
  • Якщо ви створили новий ключ завантаження: підписуйте ним набори App Bundle, перш ніж передавати їх у Google Play. Google використовує ключ завантаження, щоб підтвердити вашу особу. Якщо ви втратите ключ завантаження, зв’яжіться зі службою підтримки, щоб його скинути.
Як оновити ключ підпису, щоб активувати функцію підписування додатків у Google Play

Це може знадобитися, якщо ви не можете поділитися наявним ключем. Зверніть увагу на наведені нижче відомості.

  • Для цього варіанта потрібно опублікувати випуск у двох форматах.
  • Вам знадобиться завантажувати набір App Bundle разом із файлом APK, підписаним вашим старим ключем, для кожного випуску. Google Play за допомогою наборів App Bundle генеруватиме файли APK, підписані новим ключем, для пристроїв з Android R* (API 30-го рівня) або новішої версії. Ваші файли APK, підписані старим ключем, використовуватимуться у випусках для попередніх версій Android (API до 29-го рівня).

* Якщо у вашому додатку використовуються ідентифікатори sharedUserId, радимо оновлювати ключ для встановлень і оновлень на пристроях з Android T (API 33-го рівня) або новішої версії. Для цього в конфігурації пакета вкажіть точну мінімальну версію SDK.

Крок 1. Завантажте новий ключ, а потім згенеруйте й завантажте файл підтвердження зміни

Це потрібно, щоб пристрої Android сприймали новий ключ як надійний.

  1. Відкрийте Play Console і перейдіть на сторінку Підписування додатків у Google Play (Тестування й випуск > Налаштування > Підписування додатків).
  2. Виберіть вкладку Підписування додатків.
  3. Натисніть Показати розширені параметри й виберіть Застосувати новий ключ підпису додатка (знадобиться щоразу публікувати випуск у двох форматах).
  4. Виберіть потрібний варіант: використовувати ключ підпису іншого додатка із цього облікового запису розробника або завантажити новий ключ підпису додатка з Android Studio, сховища ключів Java чи іншого сховища.
  5. Дотримуючись вказівок на екрані, завантажте й запустіть інструмент PEPK.
  6. Коли архів ZIP буде готовий, натисніть Завантажити створений файл .zip і завантажте його в Play Console.
  7. Поруч із пунктом "5. Додайте підтвердження зміни, щоб пристрої Android сприймали новий ключ як надійний" натисніть Показати вказівки.
  8. Завантажте APKSigner й згенеруйте файл підтвердження зміни, виконавши таку команду:
    • $ apksigner rotate --out /path/to/new/file --old-signer --ks old-signer-jks --set-rollback true --new-signer --ks new-signer-jks --set-rollback true
  9. Виберіть Надіслати створений файл підтвердження зміни, щоб додати файл, згенерований під час виконання кроку 8.
  10. Натисніть Зберегти.

Як створити ключ завантаження й оновити сховища ключів

Задля кращого захисту радимо підписувати додаток новим ключем завантаження, а не ключем підпису додатка.

Ви можете створити ключ завантаження, коли реєструєте додаток для підписування в Google Play, або пізніше на сторінці Підписування додатків у Google Play (Тестування й випуск > Налаштування > Підписування додатків).

Ось як створити ключ завантаження:

  1. Дотримуйтеся вказівок на сайті розробників Android. Збережіть ключ у надійному місці.
  2. Експортуйте сертифікат для ключа завантаження у форматі PEM. Замініть такі підкреслені аргументи:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. У відповідному вікні під час випуску завантажте сертифікат, щоб зареєструвати його в Google.

Коли ви використовуєте ключ завантаження:

  • ключ завантаження реєструється лише в Google для автентифікації автора додатка;
  • перед доставкою користувачам ваш підпис видаляється з усіх завантажених файлів APK.
Вимоги до ключа завантаження
  • Це має бути ключ RSA розміром від 2048 бітів.
Як оновлювати сховища ключів

Коли ключ завантаження створено, радимо перевірити й оновити:

  • локальні комп’ютери
  • закритий локальний сервер (різні списки ACL)
  • комп’ютер у хмарі (різні списки ACL)
  • спеціальні сервіси керування секретними ключами
  • сховища даних Git

Оновлення ключа підпису додатка

У цьому розділі описано, як оновити ключ підпису додатка. Якщо ви втратили ключ завантаження, не потрібно надсилати запит на його оновлення. Натомість прочитайте розділ Ключ завантаження втрачено або зламано? внизу цієї сторінки.

За певних обставин ключ підпису додатка можна оновити.

Зокрема, це може знадобитися, якщо:

  • потрібен криптографічно надійніший ключ;
  • ключ підпису додатка зламано.

Важливо. Оновлення ключів доступне лише для наборів App Bundle.

Перш ніж надіслати запит на оновлення ключа в Play Console, прочитайте розділ Що слід врахувати, надсилаючи запит на оновлення ключа підпису додатка цієї статті. Потім можете розгорнути інші розділи нижче, щоб дізнатися більше.

Що слід врахувати, надсилаючи запит на оновлення ключа підпису додатка

Перш ніж надіслати запит на оновлення, важливо зрозуміти, які зміни доведеться впровадити після отримання нового ключа.

  • Якщо за допомогою того самого ключа підпису кілька додатків отримує доступ до спільного коду чи даних, у таких додатках потрібно налаштувати розпізнавання сертифікатів нового й застарілого ключів. На пристроях з Android S (API 32-го рівня) або старіших версій платформа Android розпізнає лише застарілий сертифікат ключа підпису додатка, який використовується для надсилання коду чи даних.
  • Щоб інтерфейси API додатка й надалі працювали після його оновлення, зареєструйте сертифікати нового й старого ключів підпису в постачальників API. Сертифікати доступні на сторінці Підписування додатків у Google Play (Тестування й випуск > Налаштування > Підписування додатків) у Play Console.  
  • Якщо користувач отримує дані через однорангову мережу, він зможе встановити лише оновлення, підписані тим самим ключем, що й версія додатка на його пристрої. Якщо додаток не вдається оновити, тому що версію на пристрої підписано іншим ключем, користувач може видалити й перевстановити цей додаток, щоб отримувати оновлення.
Як надіслати запит на оновлення ключа для всіх встановлень на пристроях Android N (API 24-го рівня) і новіших версій

Ключ підпису додатка для всіх його встановлень на Android N (API 24-го рівня) і новіших версій можна оновити раз на рік.

Якщо ваш запит на оновлення ключа буде схвалено, новим ключем підписуватимуться всі встановлення й оновлення додатків. На пристроях з Android T (API 33-го рівня) і новіших версій застосування оновленого ключа – це обов’язкова вимога платформи Android. На пристроях з Android S (API 32-го рівня) або старіших версій застосування оновленого ключа не вимагається й застарілий ключ підпису розпізнається як ключ підпису додатка. Це також стосується будь-яких функцій платформи Android (наприклад, надання спеціальних дозволів), для яких потрібен ключ підпису додатка. На пристроях із версіями ОС від Android N (API 24-го рівня) до Android S (API 32-го рівня) Google Play Захист перевірятиме, чи оновлення додатка підписано вашим оновленим ключем, якщо користувач не вимкнув цю функцію. Це потрібно для додаткової перевірки, оскільки на пристроях з Android S (API 32-го рівня) або старіших версій платформа Android не вимагає застосування оновленого ключа.

  1. Відкрийте Play Console і перейдіть на сторінку Підписування додатків у Google Play (Тестування й випуск > Налаштування > Підписування додатків).
  2. На картці "Оновіть ключ підписання додатка" натисніть Надіслати запит на оновлення ключа.
  3. Виберіть варіант оновлення ключа підпису додатка для всіх встановлень на пристроях Android N і новіших версій.
  4. Надішліть новий ключ підпису додатка або дозвольте Google його створити (рекомендовано).
    • Якщо ви підписували й завантажували додаток за допомогою того самого ключа, після його оновлення можна використовувати для завантаження старий ключ підпису або створити новий ключ завантаження.
  5. Виберіть причину запиту на оновлення ключа підпису додатка.
  6. За потреби зареєструйте новий ключ підпису додатка в постачальників API.

Порада. Якщо ви розповсюджуєте додаток у кількох каналах, оновіть ключ для кожного з них, щоб забезпечити максимальну сумісність оновлень додатка. Для сумісності з оновленими ключами Google Play скористайтесь інструментом ApkSigner в складі пакета Android SDK Build Tools (редакція 33.0.1+):

$ apksigner sign --in ${INPUT_APK}

--out ${OUTPUT_APK}

--ks ${ORIGINAL_KEYSTORE}

--ks-key-alias ${ORIGINAL_KEY_ALIAS}

--next-signer --ks ${UPGRADED_KEYSTORE}

--ks-key-alias ${UPGRADED_KEY_ALIAS}

--lineage ${LINEAGE}

 Дізнайтеся більше про те, як працює оновлення додатків.

Практичні поради

  • Якщо ви публікуєте чи плануєте публікувати додаток не лише в Google Play і хочете скористатися тим самим ключем підпису, це можна зробити двома наведеними нижче способами. 
    • Дозвольте Google створити ключ (рекомендовано) і завантажте підписаний універсальний файл APK з App Bundle Explorer, щоб поширювати додаток за межами Google Play.
    • Або ж створіть ключ підпису додатка, який використовуватиметься в усіх магазинах додатків, а потім завантажте його в Google під час налаштування функції підписування додатків у Google Play.
  • Щоб захистити свій обліковий запис, увімкніть двохетапну перевірку для облікових записів із доступом до Play Console.
  • Опублікувавши набір App Bundle у потрібній версії, ви можете відкрити App Bundle Explorer і отримати доступ до встановлюваних файлів APK, які Google генерує з набору App Bundle. Нижче описано можливі дії.
    • Скопіюйте посилання для внутрішнього доступу до додатків і поділіться ним. За допомогою цього посилання можна швидко перевірити, який контент буде встановлено з вашого набору App Bundle на тому чи іншому пристрої.
    • Завантажте універсальний файл APK, підписаний ключем підпису додатка, який зберігається в Google. Його можна буде встановити на будь-якому пристрої, який підтримує ваш додаток.
    • Завантажте архів .zip з усіма файлами APK для певного пристрою. Їх підписано ключем підпису додатка, який зберігається в Google. Ви можете встановити ці файли APK на пристрої за допомогою команди adb install-multiple *.apk.
  • Задля кращого захисту створіть новий ключ завантаження, відмінний від ключа підпису додатка.
  • Якщо ви використовуєте API Google, то можете зареєструвати для свого додатка сертифікати ключів завантаження й підпису в Google Cloud Console.
  • Якщо ви використовуєте функцію Android App Links, обов’язково оновіть ключі у відповідному файлі JSON протоколу Digital Asset Links на своєму веб-сайті.

Ключ завантаження втрачено або зламано?

Якщо приватний ключ завантаження втрачено або зламано, створіть новий. Після цього власник облікового запису розробника зможе надіслати запит на скидання ключа в Play Console.

Коли наша служба підтримки зареєструє новий ключ завантаження, власник облікового запису й адміністратори з доступом до всіх додатків отримають повідомлення в Play Console і електронний лист із подальшою інформацією. Потім ви зможете оновити сховища ключів і зареєструвати ключ у постачальників API.

Власник облікового запису також може скасувати в Play Console запит на скидання ключа.

Важливо! Скидання ключа завантаження не впливає на ключ підпису додатка, яким Google Play повторно підписує файли APK перед доставкою користувачам.

Схема підписів APK версії 4

Пристрої з Android 11 і новіших версій підтримують нову схему підписів APK версії 4. Цю версію функція підписування додатків у Google Play використовує для додатків, які відповідають вимогам, щоб забезпечити для них можливість доступу до функцій оптимізованого розповсюдження на нових пристроях. Для переходу на схему підписів APK версії 4 розробнику не потрібно нічого робити. Очікується, що ці зміни пройдуть непомітно для користувачів.

Матеріали за темою

Чи корисна ця інформація?

Як можна її покращити?

Потрібна додаткова допомога?

Спробуйте дії нижче.

Пошук
Очистити пошук
Закрити пошук
Головне меню
4152688077749448071
true
Пошук у довідковому центрі
true
true
true
true
true
92637
false
false