Защо да използвате функцията за подписване на приложения в Google Play? Освен че предпазва ключовете ви от загуба за постоянно или компрометиране, регистрирането във функцията за подписване на приложения в Google Play отключва подобренията в Google Play за пакетите ви Android App Bundle (.aab). Като разрешите на Google да подписва оптимизираните APK файлове за разпространение, генерирани от пакетите ви с приложения, получавате достъп до ценни услуги, като например автоматична защита и автоматичен превод на низовете посредством моделите на Gemini. Игрите получават достъп до допълнителни автоматични услуги, като например Play Games Sidekick, игра по време на изтегляне и пробни периоди без парично заплащане за платени заглавия.
За да конфигурирате функцията за подписване на приложения в Google Play, трябва да сте собственик на профила или да имате разрешението Пускане на стандартни версии, изключване на устройства и използване на функцията за подписване на приложения в Google Play и да приемете Общите условия.
Основни понятия
Когато използвате функцията за подписване на приложения в Google Play, работите с два отделни ключа. Разбирането на разликата между тях и техническите им формати е от решаващо значение за избягване на проблеми с удостоверяването с API на трети страни.
| Тип ключ | Кой го държи? | Технически подробности и предназначение |
|
Ключ за качване |
Вие (съхранявайте го надеждно!) |
|
| Ключ за подписване на приложение |
Google Play |
|
Забележка: За максимална сигурност ключът за качване и ключът за подписване на приложение трябва да са различни.
Как Google подписва приложението ви: Когато генерираме ключа за подписване на приложение и подписваме APK файловете ви с него, използваме apksigner, за да добавим две клейма в манифеста на приложението ви (com.android.stamp.source и com.android.stamp.type). Тези клейма гарантират, че APK файловете ви могат да бъдат проследени по сигурен начин до първоначалния подписващ.
Настройване на функцията за подписване на приложения в Google Play
Настройването зависи от това дали публикувате ново приложение, или мигрирате съществуващо.
За нови приложения
- Създаване на ключ за качване: Генерирайте хранилище за ключове, с което да подпишете пакета с приложения за версията си. Можете да го генерирате в Android Studio или да използвате помощната програма keytool на Java от командния ред.
- Качване на пакета ви с приложения: Отворете Play Console и подгответе нова версия. Когато качите пакета си с приложение, по подразбиране функцията за подписване на приложения в Google Play автоматично генерира криптографски надежден RSA ключ с дължина 4096 бита, за да управлява и защитава приложението ви. Над 90% от новите приложения използват тази препоръчителна основна настройка и за настройването ѝ не се изисква допълнително действие.
- Промяна на ключа за подписване на приложение (по избор): Напредналите програмисти, които искат да управляват собствения си ключ, могат да променят този ключ по подразбиране. Можете да направите това, като кликнете върху Промяна на ключа за подписване в секцията Цялост на приложението на версията си или като отворите Защитено с Google Play > Разпространение в Google Play Магазин > Подписване на приложения в Google Play. След това можете да изберете:
- да използвате същия ключ като за друго приложение в този профил на програмист.
- да предоставите копие на ключа си за подписване на приложение. Първо изтеглете от Play Console публичния ключ на Google за шифроване. След това използвайте инструмента за личен ключ за шифроване в Google Play (PEPK) (можете да изтеглите компилирания инструмент или изходния му код директно от Play Console, за да го потвърдите или компилирате самостоятелно), за да шифровате сигурно и да качите съществуващия си RSA ключ (с дължина най-малко 2048 бита) от което и да е хранилище.
За съществуващи приложения
Ако понастоящем управлявате собствените си ключове и качвате APK файлове, можете да надстроите до функцията за подписване на приложения в Google Play, за да се възползвате от предимствата на пакетите с приложения и подобренията в Google Play.
- В Play Console отворете Защитено с Google Play > Разпространение в Google Play Магазин > Подписване на приложения в Google Play.
- Приемете Общите условия, ако още не сте го направили.
- Прехвърлете копие на оригиналния си ключ. Изтеглете инструмента PEPK и изпълнете единните поетапни инструкции, за да шифровате и качите съществуващия си ключ за подписване на приложение от което и да е хранилище.
Регистриране при доставчици на API
Ако приложението ви използва API (например Google Карти, OAuth или Facebook Login), съответните услуги го удостоверяват чрез отпечатъка на ключа ви за подписване на приложение.
Тъй като Google подписва крайния APK файл, трябва да регистрирате отпечатъка на ключа за подписване на приложение, съхраняван от Google, при доставчиците си на API, а не само локалния си ключ за качване.
- Отворете Защитено с Google Play > Разпространение в Google Play Магазин > Подписване на приложение в Google Play.
- Превъртете до секцията Ключ за подписване на приложение.
- Копирайте необходимите отпечатъци (SHA-1 или SHA-256).
- Поставете тези отпечатъци в конзолата на доставчика на API (например Google Cloud Console).
Пояснение: Актуализирайте файла си assetlinks.json с тези отпечатъци, ако използвате Android App Links.
Управление на ключовете ви
Надстройване на ключа ви за подписване на приложение
Ако ключът ви за подписване на приложение е компрометиран или се нуждаете от криптографски по-надежден ключ, можете да заявите годишно надстройване на ключа за всички инсталирания под Android N (API ниво 24) и по-нови версии.
Как работи налагането на мерки за различните версии на Android:
- Android T (API ниво 33) и по-нови версии: Платформата Android налага стриктно използването на надстроения ви ключ.
- Android N (API ниво 24) до Android S (API ниво 32): Платформата Android не налага използването на надстроения ключ и пак разпознава предишния ключ за подписване. Google Play Protect обаче предоставя допълнително потвърждаване, като проверява дали актуализациите на приложението са подписани с надстроения ви ключ (освен ако това не е изключено от потребителя).
Важно съображение:
- Споделени данни: Тъй като платформата не налага използването на надстроения ключ под Android S (API ниво 32) и по-стари версии, ако използвате един и същ ключ за няколко приложения с цел споделяне на данни, по-старите версии на Android ще разпознават само предишния ключ за различни функции, като например споделяне на персонализирани разрешения.
Как да надстроите:
- Отворете Защитено с Google Play > Разпространение в Google Play Магазин > Подписване на приложение в Google Play.
- В секцията „Ключ за подписване на приложение“ кликнете върху Надстройване на ключа.
- Изберете пътя си за надстройване:
- Google Play да генерира нов ключ за подписване на приложение (препоръчително)
- Използване на същия ключ, с който е подписано друго приложение в този профил на програмист
- Предоставете копие на ключа си за подписване на приложение (като изпълните инструкциите).
- Ако предоставяте свой собствен ключ, генерирайте и качете удостоверение за смяна на ключа чрез инструмента apksigner (включен в пакета с инструментите на SDK за Android). (За подробности относно използваните тук флагове вижте документацията за командния ред на 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
- apksigner
- Кликнете върху Запазване и регистрирайте новите отпечатъци на ключа при доставчиците си на API.
Заявка за нулиране на ключ за качване
Ако загубите ключа си за качване или подозирате, че е бил компрометиран, няма да бъдете блокиран(а) от приложението си.
- Създайте нов ключ за качване в Android Studio.
- Експортирайте сертификата във формат PEM:
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
(За повече помощ относно keytool и пътищата до хранилището за ключове вижте ръководството на Android Studio за подписване на приложения). - Собственикът на профила трябва да заяви нулиране на ключа за качване чрез помощния формуляр в Play Console.
- При подкана качете
upload_certificate.pem.
Забележка: Нулирането на ключа за качване не засяга ключа за подписване на приложение, нито потребителите ви.
Най-добри практики и алтернативно разпространение
- Сигурност: Защитете достъпа си до Play Console, като наложите потвърждаване в две стъпки за всички потребители.
- Подобрения в Google Play: Регистрирането за функцията за подписване на приложения в Google Play отключва достъп до подобренията в Google Play за пакетите ви с приложения. За да получите актуализациите, първо направете необходимите промени, когато създавате нова версия, и след това качете новия пакет с приложения.
- Разпространение извън Google Play: Ако разпространявате чрез други магазини за приложения и искате да използвате един и същ ключ за подписване навсякъде, имате две възможности. Можете да разрешите на Google да генерира ключа ви за подписване на приложение и да изтеглите подписан универсален APK файл от най-новите версии и пакети, за да го разпространявате на други места (отворете Тестване и публикуване > Най-нови публикувани версии и пакети, изберете пакета си с приложения и кликнете върху раздела Изтегляния). Друга възможност е да генерирате ключа за подписване на приложение, който искате да използвате за всички магазини за приложения, и да ни предоставите негово копие, когато конфигурирате функцията за подписване на приложения в Google Play.
- Тестване: Използвайте вътрешното споделяне на приложения, за да тествате точно това, което Google Play ще предоставя на потребителите, или изтеглете APK файлове за конкретни устройства от инструмента за разглеждане на Android App Bundle и ги инсталирайте локално чрез adb install-multiple *
.apk. - APK Signature Scheme v4: Функцията за подписване на приложения в Google Play автоматично използва v4 Signing за отговарящите на условията приложения, за да поддържа оптимизирано разпространение на устройства с Android 11 и по-нови версии. Не се изисква действие от ваша страна. Можете да прочетете повече за техническите предимства в документацията за APK Signature Scheme v4.
- Самостоятелно хоствани проекти в Google Cloud: Ако имате много конкретни изисквания за сигурност (например използване на ключове от OEM), можете да използвате API на Google Play за програмисти, за да се регистрирате за функцията за подписване на приложения в Google Play чрез самостоятелно хостван проект в Google Cloud. Забележка: Това е нестандартна настройка, която не се препоръчва. Използването на самостоятелно хостван проект означава, че поемате пълна отговорност за операциите по подписване на приложението и това не позволява на Google Play да изпълнява основни функции, като например аварийно възстановяване.