Използване на подписването на приложения в Google Play

С помощта на функцията за подписване на приложения в Google Play управляваме и защитаваме ключа за подписване на приложението ви вместо вас и подписваме с него оптимизирани APK файлове за разпространение, които са генерирани от пакетите ви с приложения. Функцията съхранява ключа ви за подписване на приложение в надеждната инфраструктура на Google и предлага опции за надстройване с цел повишаване на сигурността.

За да използвате функцията за подписване на приложения в Google Play, трябва да сте собственик на профил или потребител с разрешението Пускане на стандартни версии, изключване на устройства и използване на функцията за подписване на приложения в Google Play и да приемете Общите ѝ условия.

Начин на работа

Когато използвате функцията за подписване на приложения в Google Play, ключовете ви се съхраняват в същата надеждна инфраструктура, която Google използва за съхранение на собствените си ключове. Те са защитени чрез услугата ни за управление на ключовете. Ако искате да научите повече за инфраструктурата ни, прочетете бялата книга за сигурността на Google Cloud.

Приложенията за Android се подписват с личен ключ. За да се гарантира надеждността на актуализациите им, всеки личен ключ е свързан с публичен сертификат, чрез който устройствата и услугите потвърждават, че актуализацията и приложението са от един и същ източник. Устройствата приемат дадена актуализация само ако подписът ѝ съответства на този на инсталираното приложение. Ако позволите на Google да управлява ключа ви за подписване на приложение, този процес става по-сигурен.

Забележка: За приложенията, създадени преди август 2021 г., все още може да качите APK файл и да управлявате собствените си ключове, вместо да използвате функцията за подписване на приложения в Google Play и да публикувате във формат Android App Bundle. Ако обаче загубите хранилището си за ключове или то бъде компрометирано, няма да имате възможност да актуализирате приложението си, без да публикувате ново с друго име на пакета. За тези приложения препоръчваме да използвате функцията за подписване на приложения в Google Play и да преминете към формата Android App Bundle.

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

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

Не трябва да го разкривате на никого, но можете да споделяте публичния сертификат на приложението си с други хора.

Ключ за качване

Ключът, с който подписвате пакетите с приложения, преди да ги качите в Google Play. Не трябва да го разкривате на никого, но можете да споделяте публичния сертификат на приложението си с други хора. От съображения за сигурност е добре ключът за подписване на приложение да е различен от този за качване.

Има два начина за генериране на ключ за качване:

  • Посредством ключа за подписване на приложение: Ако изберете Google да генерира ключ за подписване на приложение, ключът, с който подпишете първата си версия, ще се използва и като ключ за качване.
  • Посредством отделен ключ за качване: В случай че предоставите свой собствен ключ за подписване на приложение, с цел повишена сигурност ще имате възможност да генерирате нов ключ за качване. Ако не се възползвате от нея, ключът за подписване на приложение ще изпълнява функцията на ключ за качване, с който ще подписвате версиите.
Сертификат (.der или .pem)

Сертификатът съдържа публичен ключ и допълнителна идентифицираща информация за собственика на ключа. Този сертификат дава възможност на всеки да провери кой е подписал пакета с приложения или APK файла. Можете да го споделите с когото и да е, тъй като не съдържа личния ви ключ.

За да регистрирате ключовете си към доставчици на API, можете да изтеглите публичния сертификат за ключа за подписване на приложение и този за ключа за качване от страницата Подписване на приложения в Google Play (Версия > Настройване > Цялост на приложението) в Play Console. Можете да споделите сертификата за публичен ключ с когото пожелаете. Той не съдържа личния ви ключ.

Отпечатък за сертификат

Кратък уникален идентификатор, който доставчиците на API често изискват заедно с името на пакета, когато дадено приложение се регистрира с цел използване на услугите им.

Отпечатъците, основани на MD5, SHA-1 и SHA-256, на сертификатите за качване и подписване на приложение могат да бъдат намерени на страницата Подписване на приложения в Google Play (Версия > Настройване > Цялост на приложението) в Play Console. И другите отпечатъци могат да бъдат изчислени, като за целта трябва да се изтегли оригиналният сертификат (.der) от същата страница.

Хранилище за ключове в Java (.jks или .keystore) Хранилище за сертификати за сигурност и лични ключове.
Личен ключ за шифроване в Google Play (PEPK)

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

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

Процес на подписване на приложение

Ето как протича процесът:

  1. Подпишете пакета си с приложения и го качете в Play Console.
  2. Google генерира оптимизирани APK файлове от пакета и ги подписва с ключа за подписване на приложение.
  3. Използваме apksigner, за да добавим две клейма в манифеста на приложението ви (com.android.stamp.source и com.android.stamp.type), и след това подписваме APK файловете с ключа ви за подписване на приложение. Клеймата, добавени чрез apksigner, дават възможност да се проследи от кого са подписани APK файловете.
  4. Google разпространява подписаните APK файлове до потребителите.

Конфигуриране на функцията за подписване на приложения в Google Play

Инструкции за приложенията, създадени след август 2021 г.

Стъпка 1: Създаване на ключ за качване

  1. Създайте ключ за качване, като изпълните тези инструкции.
  2. Подпишете пакета си с приложения с ключа за качване.

Стъпка 2: Подготвяне на версията ви

  1. Изпълнете инструкциите за подготвяне и разпространение на версията ви.
  2. След като изберете канал за пускане, в секцията „Цялост на приложението“ се показва състоянието на функцията за подписване на приложения в Google Play за приложението ви.
  3. За да продължите с генериран от Google ключ за подписване на приложение, качете пакета си с приложения. Друга възможност е да изберете Промяна на ключа за подписване на приложение за достъп до следните опции:
    • Използване на генериран от Google ключ за подписване на приложение: Над 90% от новите приложения ползват такива ключове. Генерираните от Google ключове предоставят защита срещу загуба или компрометиране (ключовете не се изтеглят). Ако изберете тази опция, можете да изтеглите APK файловете за разпространение, подписани с генерирания от Google ключ за други канали за разпространение, от инструмента за разглеждане на Android App Bundle или да използвате различен ключ за тях.
    • Използване на друг ключ за подписване на приложение: При избирането на ключ за подписване на приложение имате възможност да използвате същия ключ, с който е подписано друго приложение в профила ви на програмист, или да запазите локално копие на съответния ключ за по-голяма гъвкавост. Възможно е например вече да разполагате с определен ключ поради това, че приложението ви е предварително инсталирано на някои устройства. Съхраняването на копие на ключа ви извън сървърите на Google увеличава риска, в случай че то бъде компрометирано. Разполагате с посочените по-долу опции за използване на различен ключ:
      • Използвайте същия ключ, с който е подписано друго приложение в този профил на програмист;
      • Експортиране и качване на ключ от хранилище за ключове в Java;
      • Експортиране и качване на ключ (без използване на хранилище за ключове в Java).
  4. Изпълнете останалите инструкции за подготвяне и разпространение на версията ви.

Забележка: За да продължите, трябва да приемете Общите условия и да се включите във функцията за подписване на приложения.

Стъпка 3: Регистриране на ключа за подписване на приложение към доставчици на API

Ако приложението ви използва API, в повечето случаи ще трябва да регистрирате ключа си за подписване на приложение към съответните доставчици с цел удостоверяване, като предоставите отпечатъка на сертификата. Ето къде да намерите сертификата:

  1. Отворете Play Console и посетете страницата Подписване на приложения в Google Play (Версия > Настройване > Цялост на приложението).
  2. Превъртете до секцията „Сертификат за ключа за подписване на приложение“ и копирайте отпечатъците (MD5, SHA-1 и SHA-256) на сертификата за подписване на приложението ви.
    • Ако доставчикът на API изисква друг тип отпечатък, можете също да изтеглите оригиналния сертификат във формат .der и да го конвертирате посредством инструментите за преобразуване, които се изискват от съответния доставчик.
Изисквания за ключа за подписване на приложение

Когато използвате генериран от Google ключ, ние автоматично генерираме криптографски надежден RSA ключ с дължина 4096 бита. Ако решите да качите собствен, той трябва да е RSA ключ с дължина най-малко 1024 бита.

Инструкции за приложенията, създадени преди август 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: Подписване на следващата актуализация на приложението ви с ключа за качване

Когато публикувате актуализации за приложението си, трябва да ги подпишете с ключа си за качване.

  • Ако не сте генерирали нов ключ за качване, продължете да използвате оригиналния си ключ за подписване на приложение, за да подписвате пакетите с приложения, преди да ги качите в Google Play. В случай че загубите оригиналния ключ за подписване, можете да генерирате нов ключ за качване и да го регистрирате в Google, за да продължите да актуализирате приложението си.
  • Ако сте генерирали нов ключ за качване, подписвайте с него пакетите с приложения, преди да ги качите в Google Play. Използваме ключа за качване с цел потвърждаване на самоличността ви. В случай че загубите този ключ, можете да се свържете с екипа за поддръжка, за да бъде нулиран.

Създаване на ключ за качване и актуализиране на хранилищата за ключове

За повишена сигурност препоръчваме да подписвате приложението си с нов ключ за качване вместо с ключа за подписване.

Можете да създадете ключ за качване при включването си във функцията за подписване на приложения в 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 бита.
Актуализиране на хранилищата за ключове

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

  • локални компютри;
  • заключен сървър на място (различни списъци за контрол на достъпа);
  • компютър в облака (различни списъци за контрол на достъпа);
  • специализирани услуги за управление на тайни;
  • хранилища (Git).

Надстройване на ключа ви за подписване на приложение за нови инсталирания

В някои случаи можете да заявите надстройване на ключа за подписване на приложение. Новият ви ключ се използва за подписване на нови версии за инсталиране и актуализации за приложения. Предишният ви ключ за подписване на приложение все още се използва за подписване на актуализации за потребители, които са инсталирали приложението ви преди надстройването на ключа.

Ключът за подписване на приложение може да бъде надстроен само веднъж през целия жизнен цикъл на всяко приложение. При малко вероятния случай, когато няколко приложения използват един и същ ключ за подписване, за да могат да се изпълняват в един и същ процес, няма да можете да надстроите ключа за тях.

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

  • трябва ви криптографски по-надежден ключ;
  • ключът ви за подписване на приложение е компрометиран.

Забележка: Заявяването на надстройване на ключа за подписване на приложение в Play Console не е свързано с промяната на ключа, въведена в APK signature scheme v3 за Android P и по-нови версии. Този тип промяна на ключа понастоящем не се поддържа от Google Play.

Важни съображения, преди да заявите надстройване на ключ

Преди да заявите надстройване на ключ, е важно да разберете промените, които може да се наложи да направите след завършване на надстройването.

  • Ако използвате един и същ ключ за подписване на няколко приложения с цел споделяне на код и данни между тях, ще трябва да ги актуализирате, за да разпознават и новия, и предишния сертификат на ключа за подписване на приложение.
  • Ако приложението ви използва приложни програмни интерфейси (API), трябва да регистрирате сертификатите за новия и предишния ви ключ за подписване на приложение към доставчиците на API. Направете го, преди да публикувате актуализацията, за да е сигурно, че тези API продължават да работят. Сертификатите са налични на страницата Подписване на приложения в Google Play (Версия > Настройване > Цялост на приложението) в Play Console.  
  • В случай че някои от потребителите ви инсталират актуализации чрез споделяне с директна връзка, те ще могат да инсталират само актуализации, подписани със същия ключ като версията на приложението, която вече са инсталирали. Ако не могат да актуализират приложението си, защото имат версия, подписана с различен ключ, те имат възможност да деинсталират и инсталират отново приложението, за да получат актуализацията.
Заявяване на надстройване на ключа за нови инсталирания
  1. Отворете Play Console и посетете страницата Подписване на приложения в Google Play (Версия > Настройване > Цялост на приложението).
  2. В картата „Надстройване на ключа ви за подписване на приложение за нови инсталирания“ изберете Заявка за надстройване на ключа.
  3. Изберете опция.
    • В зависимост от избраната опция може да се наложи да се свържете с екипа за поддръжка, за да завършите заявката си.
  4. Изберете Google да генерира нов ключ за подписване на приложение (препоръчително) или качете такъв.
    • След като надстроите ключа за подписване на приложение, ако сте използвали един и същ ключ за качване и подписване на приложението, можете да продължите да използвате досегашния си ключ за подписване на приложение като ключ за качване или да генерирате нов ключ за качване.
  5. При необходимост регистрирайте новия си ключ за подписване на приложение към доставчиците на API.

Най-добри практики

  • Ако разпространявате приложението си и извън Google Play или възнамерявате да го правите в бъдеще и искате да използвате същия ключ за подписване, имате две възможности:
    • Едната е да разрешите на Google да генерира ключа (препоръчително) и да изтеглите подписан универсален APK файл от инструмента за разглеждане на Android App Bundle с цел разпространение извън Google Play.
    • Друга възможност е да генерирате ключа за подписване, който искате да използвате за всички магазини за приложения, и да ни предоставите негово копие, когато конфигурирате функцията за подписване на приложения в Google Play.
  • За да защитите профила си, включете потвърждаването в две стъпки за профилите, които имат достъп до Play Console.
  • След като публикувате пакет с приложения в канал за пускане, можете да използвате инструмента за разглеждане на Android App Bundle, за да осъществите достъп до APK файловете с възможност за инсталиране, които Google генерира от пакета ви с приложения. Можете:
    • да копирате и предоставите връзка за вътрешно споделяне на приложения, която ви дава възможност с едно докосване да тествате какво ще инсталира Google Play от пакета ви с приложения на различните устройства.
    • да изтеглите подписан универсален APK файл. Той е подписан с ключа за подписване на приложение, съхраняван от Google, и може да се инсталира на всяко устройство, което се поддържа от приложението ви.
    • да изтеглите архивен ZIP файл с всички APK файлове за конкретно устройство. Те са подписани с ключа за подписване на приложение, съхраняван от Google. Можете да ги инсталирате в архивния ZIP файл на дадено устройство посредством командата adb install-multiple *.apk.
  • За повишена сигурност генерирайте нов ключ за качване, различен от ключа за подписване на приложение.
  • В случай че използвате API на Google, добре е да регистрирате в Google Cloud Console сертификатите на ключа за качване и този за подписване за приложението си.

Ключът за качване е загубен или компрометиран?

Ако сте загубили личния си ключ за качване или той е бил компрометиран, можете да създадете нов, след което да помолите собственика на профила да се свърже с екипа за поддръжка, за да нулира ключа. За целта собственикът трябва да прикачи файла upload_certificate.pem.

След като екипът ни за поддръжка регистрира новия ключ за качване, ще получите имейл, след което ще можете да актуализирате хранилищата си за ключове и да регистрирате ключа към доставчиците на API.

Важно: Нулирането на ключа за качване не засяга ключа за подписване на приложение, който Google Play използва, за да подписва повторно APK файловете, преди да ги разпространи до потребителите.

APK Signature Scheme v4

Устройствата с Android 11 и по-нова версия поддържат новата APK signature scheme v4. Функцията за подписване на приложения в Google Play ще започне да разпространява тази версия към избрани приложения, за да имат възможност да осъществят достъп до предстоящите функции за ефективност, които са налице на по-новите устройства. Не са необходими действия от страна на програмистите и не се очаква въздействие върху потребителите.

 

Това полезно ли бе?
Как можем да направим подобрения?

Нуждаете се от още помощ?

Влезте в профила си за допълнителни опции за поддръжка, за да решите бързо проблема си

Търсене
Изчистване на търсенето
Затваряне на търсенето
Приложения на Google
Главно меню
Търсене в Помощния център
true
92637
false