Як увімкнути підписку додатків Google Play


113

Я думаю, що багато розробників намагаються дізнатися більше про нову функцію підпису додатків Google Play, представлену в Google I / O 2017.

Можливість зберігання сховища ключів для підпису програм у Google Play заощаджує ваші зусилля, щоб безпечно зберігати сховище ключів, а також може допомогти системі оптимізувати APK-файли, що подаються на кожному пристрої, виходячи з обладнання та ОС.

Більше про цю тему можна прочитати в офіційній документації тут: https://developer.android.com/studio/publish/app-signing.html#google-play-app-signing .

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

Відповіді:


189

Цей посібник орієнтований на розробників, які вже мають додаток у Play Store. Якщо ви починаєте з нової програми, процес це набагато простіше, і ви можете слідувати вказівкам параграфа "Нові програми" звідси

Передумови, що 99% розробників вже мають :

  1. Android Studio

  2. JDK 8 та після встановлення вам потрібно встановити змінну середовища у вашому користувальному просторі для спрощення термінальних команд. У Windows x64 вам потрібно додати це: C:\Program Files\Java\{JDK_VERSION}\binдо Pathзмінної середовища. (Якщо ви не знаєте, як це зробити, ви можете прочитати мій посібник, щоб додати папку до Pathзмінної середовища Windows 10 ).

Крок 0 : Відкрийте консоль розробника Google Play, а потім перейдіть до управління випуском -> Підписання програми .

введіть тут опис зображення

Прийміть TOS, що підписує додаток.

введіть тут опис зображення

Крок 1. Завантажте інструмент PEPK, натиснувши кнопку, ідентичну зображенню нижче

введіть тут опис зображення

Крок 2 : Відкрийте термінал і введіть:

java -jar PATH_TO_PEPK --keystore = PATH_TO_KEYSTORE --alias = ALIAS_YOU_USE_TO_SIGN_APK --output = PATH_TO_OUTPUT_FILE --encryptionkey = GOOGLE_ENCRYPTION_KEY

Легенда:

  • PATH_TO_PEPK = Шлях до pepk.jar, який ви завантажили на кроці 1 , може бути на зразок C:\Users\YourName\Downloads\pepk.jarкористувачів Windows.
  • PATH_TO_KEYSTORE = Шлях до магазину ключів, який ви використовуєте для підписання APK випуску. Може бути файл типу * .keystore або * .jks або без розширення. Щось подібне C:\Android\mykeystoreчи C:\Android\mykeystore.keystoreінше ...
  • ALIAS_YOU_USE_TO_SIGN_APK = Ім'я псевдоніма, який ви використовуєте для підписання APK випуску.
  • PATH_TO_OUTPUT_FILE = Шлях до вихідного файлу з розширенням .pem, щось подібнеC:\Android\private_key.pem
  • GOOGLE_ENCRYPTION_KEY = Цей ключ шифрування повинен бути завжди однаковим. Ви можете знайти його на сторінці підпису програми, скопіювати та вставити. Має бути у такому вигляді:eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

Приклад:

java -jar "C: \ Users \ YourName \ Downloads \ pepk.jar" --keystore = "C: \ Android \ mykeystore" --alias = myalias --output = "C: \ Android \ private_key.pem" - encryptionkey = eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656d48

Натисніть Enter, і вам потрібно буде вказати для того, щоб:

  1. Пароль зберігання ключів
  2. Псевдонім пароля

Якщо все пішло нормально, тепер у вас з'явиться файл у папці PATH_TO_OUTPUT_FILE private_key.pem.

Крок 3. Завантажте файл private_key.pem, натиснувши кнопку, ідентичну зображенню нижче

введіть тут опис зображення

Крок 4 : Створіть новий файл зберігання ключів за допомогою Android Studio.

ВИ МОЖЕТЕ ЦЕ КЛЮЧУВАННЯ В МАЙБУТНЄ, щоб підписати наступні релізи свого додатка, НЕ ЗАБОРУЙТЕ ПАРОЛЬНІ СЛОВА

Відкрийте один із проектів Android (виберіть навмання). Перейдіть на Build -> Створити підписаний APK і натисніть Створити новий .

введіть тут опис зображення

Тепер слід заповнити необхідні поля.

Шлях до магазину ключів представляє нову створену вами сховище ключів, виберіть папку та ім'я за допомогою піктограми 3 крапки праворуч, я вибрав C:\Android\upload_key.jks(розширення .jks додається автоматично)

ПРИМІТКА. Я використовував uploadяк нове ім’я псевдоніму, але якщо раніше ви використовували ту саму сховище ключів з різними псевдонімами для підписання різних програм, вам слід вибрати те саме ім’я псевдонімів, яке ви мали раніше в початковій сховищі ключів.

введіть тут опис зображення

Після закінчення натисніть кнопку OK, і тепер у вас з’явиться нова upload_key.jksсховище ключів. Ви можете закрити Android Studio зараз.

Крок 5 : нам потрібно витягнути сертифікат завантаження з новоствореної upload_key.jksсховища ключів. Відкрийте термінал і введіть:

keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS -файл PATH_TO_OUTPUT_FILE

Легенда:

  • UPLOAD_KEYSTORE_PATH = Шлях щойно створеного магазину ключів для завантаження. У цьому випадку було C:\Android\upload_key.jks.
  • UPLOAD_KEYSTORE_ALIAS = Новий псевдонім, пов’язаний із зберіганням клавіш завантаження. У цьому випадку було upload.
  • PATH_TO_OUTPUT_FILE = Шлях до вихідного файлу з розширенням .pem. Щось подібне C:\Android\upload_key_public_certificate.pem.

Приклад:

keytool -export -rfc -keystore "C: \ Android \ upload_key.jks" -alias upload -file "C: \ Android \ upload_key_public_certificate.pem"

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

Тепер, якщо все пішло нормально, у вас буде файл у папці PATH_TO_OUTPUT_FILE upload_key_public_certificate.pem.

Крок 6 : Завантажте upload_key_public_certificate.pemфайл, натиснувши кнопку, ідентичну зображенню нижче

введіть тут опис зображення

Крок 7 : Натисніть кнопку ВХОДИТИ в кінці сторінки підписання програми.

введіть тут опис зображення

Тепер кожен новий APK випуску повинен бути підписаний із upload_key.jksзберіганням брелоків та псевдонімами, створеними на кроці 4 , перед тим, як їх завантажувати в консоль розробника Google Play.

Більше ресурсів:

Питання та відповіді

Питання: Коли я завантажую APK, підписаний новим сховищем клавіш upload_key, у Google Play з’являється помилка на зразок: Ви завантажили неподписаний APK. Вам потрібно створити підписаний APK .

A: Поставте прапорець, щоб підписати APK обома підписами (V1 та V2) під час створення APK-версії. Детальніше читайте тут .

ОНОВЛЕНО

Крок 4,5,6 - створити ключ завантаження, який не є обов'язковим для існуючих додатків

"Ключ для завантаження (необов’язково для існуючих додатків). Новий ключ, який ви створюєте під час реєстрації в програмі. Клавішею для завантаження ви будете підписувати всі майбутні APK-файли перед завантаженням на консоль Play." https://support.google.com/googleplay/android-developer/answer/7384423


3
Ваша інструкція дуже корисна! Вони повинні розмістити це на офіційному веб-сайті lol У назвах ваших прикладів відсутні "_" цитати, які призведуть до помилки на консолі W10
NukeouT

3
Цитати потрібні лише в тому випадку, якщо у вас є хоча б один простір всередині ваших контурів, але так працює кожна команда консолі. Отже, ви повинні використовувати лапки, якщо ваш шлях: "C:\My Path\MyName"але не, якщо шлях C:\MyPath\MyName. Btw дякую :)
MatPag

1
@layth Створення нового сховища ключів - це Step 4посібник: D
MatPag

1
Я це зробив, але коли я отримав ваше нове діалогове вікно зберігання ключів, поля шляху та паролів для зберігання ключів були порожніми, тому я вказав їх на стару сховище ключів і ввів свій старий пароль - btw наразі застряг на "keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS - файл PATH_TO_OUTPUT_FILE "продовжує скаржитися, що він не знає, що означає keytool. Я спробував додати "C: \ Program Files \ Java \ jdk1.8.0_25 \ bin \ keytool.exe", але це не спрацювало, можливо, тому, що я не знаю, куди саме його поставити ..
NukeouT

9
Схоже, Google змінив процедуру, тому що я вже не можу знайти інструмент PEPK.
Андреа Мотто

31

Є набагато простіше рішення, яке займе хвилину.

  1. У консолі відтворення Google виберіть Керування випуском -> Підписання програми
  2. Виберіть перший варіант - той, який створює зашифрований приватний ключ із Android Studio (або щось подібне; я не можу повернутись назад, щоб переглянути цю сторінку)
  3. В Android Studio генерувати свій Android App Bundle (.aap файл) з Будувати -> Generate Signed Bundle / APK ... , вибрати Android App Bundle варіант і не забудьте перевірити ключ Експорт зашифрованого (необхідно , щоб зареєструвати ваш додаток Google Play додаток підпис) варіант. Якщо у вас немає створеного магазину брелоків, створіть одну спеціальну.
  4. Тепер "хитра" частина. Після генерування .aap Android Studio з'явиться сповіщення в правому нижньому куті, що містить шлях до місця, де зберігається файл .aap. У цьому ж повідомленні, якщо ви розгорнете його, ви знайдете ще одне посилання на шлях, куди був збережений приватний ключ (званий private_key.pepk ). Якщо ви пропустите це повідомлення, не хвилюйтесь, просто відкрийте вікно журналу подій , натиснувши кнопку Журнал подій у правій нижній частині, і ви знайдете ту саму інформацію. Відкрийте це місце. Для мене був C: \ Users \ yourUser \ .android

введіть тут опис зображення

  1. Поверніться у веб-переглядачі та натисніть кнопку APP SIGNING PRIVATE KEY та перейдіть до місця закритого ключа на вашому комп’ютері.

Готово!

Тепер ви можете завантажити свій реліз, який ви створили раніше :) Удачі!


1
Це найкраща і простіша відповідь
Саймон

Заощадило мені стільки часу і головне спокій
Meenohara

Я не отримую цю опцію Експортувати зашифрований ключ (необхідний для реєстрації у вашому додатку Google Play підписування додатка).
Джарвіс

Я дуже вдячний за більш повне пояснення пункту 5 - я не бачу цієї кнопки, де вона, можливо, макет змінився на останніх оновленнях?
androidneil

гаразд приємно зараз мені хочеться цікаво про те, що на наступне оновлення що робити ?? як-от нам потрібен ключ .pepk, або ми маємо підписати версію 2 за допомогою того ж ключа або нової приватної .pepk key pls help
Sunil Chaudhary

15

Під час переміщення файлу пакету додатків для Android (APK) на пакет програм для Android (AAB), публікуючи додаток в Play Store, я зіткнувся з цією проблемою і вирішив її так, як нижче ...

Під час створення .aabфайлу вам буде запропоновано розташування для зберігання ключового шляху експорту, як показано нижче:

введіть тут опис зображення
введіть тут опис зображення У другому зображенні ви знайдете Зашифрований шлях експорту ключа, де наш .pepk буде зберігатися у певній папці під час генерації .aab файлу.

Після входу в консоль Google Play з використанням облікових даних ігрового магазину: виберіть проект з лівої сторони, виберіть опцію "Підписання додатка". введіть тут опис зображення

ви знайдете вікно сертифікації додатків Google для підпису.

Після цього ви знайдете три радіо кнопки вибору **

Завантажте ключ, експортований з перемикача Android Studio

**, вона розширить додаток Кнопка ПРИЄДНУЮЧА ПРИВАТНОГО КЛЮЧУ як нижче

введіть тут опис зображення

натисніть на кнопку і виберіть .pepkфайл (ми зберігали під час генерації .aabфайлу, як зазначено вище)

Прочитайте всі інші варіанти та подайте.

Після успішного ви можете повернутися до випуску програми та переглянути файл .aab та виконати RollOut ...

@Ambilpura


гаразд приємно зараз мені хочеться цікаво про те, що на наступне оновлення що робити ?? як-от нам потрібен ключ .pepk, або ми маємо підписати версію 2 за допомогою того ж ключа або нової приватної .pepk key pls help
Sunil Chaudhary

Як я розумію, не потрібно створювати наступний раз, ви можете використовувати старий ключ .pepk ....
Ambilpura Sunil Kumar

Як ви використовуєте .pepk для оновлення? Я успішно використовував Google App підпис при завантаженні мого програми, але тепер їм намагаюся виштовхнути поновлення і не знаю , як @AmbilpuraSunilKumar
nt95

Те ж саме. Я просто завантажую abb в магазин ігор і повністю ігнорую файл .pepk. Було б непогано знати, для чого саме це добре і що робити під час оновлення програми.
Джуліан Еггерс

4

Мені довелося зробити наступне:

  1. Створіть додаток в ігровій консолі google введіть тут опис зображення

2.Перейти до версій додатків -> Управління виробництвом -> Створити випуск

3.Клікніть продовжити на підписанні програми Google Play введіть тут опис зображення

4.Створіть сертифікат завантаження, запустивши "keytool -genkey -v -keystore c: \ path \ to \ cert.keystore -alias uploadKey -keyalg RSA -keyysize 2048 -validity 10000"

5. Підпишіть свою APK згенерованим сертифікатом (c: \ path \ to \ cert.keystore)

6.Завантажте підписані apk у версіях додатків -> Управління виробництвом -> Редагувати випуск

7. Завантажуючи apk, сертифікат, згенерований на кроці 4, додано до сертифікатів для підписання додатків і став вашим сертифікатом підписання для всіх майбутніх збірок.


1
Я зробив саме це, але вхід у Google із мого додатка не працює, якщо я встановлю програму через Google Play Store. * Але * якщо я завантажую apk зі сторінки управління випуском і встановлюю її вручну в свій емулятор / пристрій, він працює. Якась ідея, чого мені не вистачає?
Рагудеван Шанкар

Я шукав всюди близько 3 годин, і ти нарешті врятував мене!
Олівер Діксон

3

Коли ви використовуєте Fabric для публічних версій бета-версії (підписані з конфігурацією prod), НЕ ВИКОРИСТОВУЙТЕ підписання програми Google Play Ви повинні створити два підписані apks!

Коли ви розповсюджуєтесь до більшої кількості ігрових магазинів (samsung, amazon, xiaomi, ...), ви знову повинні зібрати два підписані apks.

Тож будьте дуже обережні з підписом програми Google Play.

Повернути його неможливо: / і Google Play не прийняв apks, підписаний виробничим ключем. Після ввімкнення ключа для підписання додатків Google Play приймається лише ключ завантаження ...

Це дуже ускладнює розподіл CI ...

Наступні проблеми з оновленням: https://issuetracker.google.com/isissue/69285256


1
Сміливий DON'T USEтип коментарів небезпечний. Чи можете ви детально пояснити проблему та рекомендоване рішення? Немає рішення взагалі? Невже так важко два рази підписати APK на Fabric?
Гохан Арік

1
Мені не так важко підписати APK двічі, але, як я описую, ви повинні створити два (або більше) APK, які не є ідентичними (тому ви протестуєте на Fabric Beta файл, інший, ніж який буде опубліковано в Play Store). Це слабке місце тестування виробництва на бета-тестерах ... ви тестуєте інший файл :). Це лише попередження для людей, у яких є складний CI / CD, що вони повинні це контролювати ...
mtrakal

2
Зауважте, що Google Play тепер приймає APK-файли, підписані виробничим ключем, навіть після реєстрації в програмі для підписання програми.
П’єр

2

Зробіть наступне:

"CREATE APPLICATION" having the same name which you want to upload before.
Click create.
After creation of the app now click on the "App releases"
Click on the "MANAGE PRODUCTION"
Click on the "CREATE RELEASE"
Here you see "Google Play App Signing" dialog.
Just click on the "OPT-OUT" button.
It will ask you to confirm it. Just click on the "confirm" button

Після цього я можу протестувати в програмах придбання та відтворення програм, як раніше? Чи мали ви досвід роботи з цього приводу? Тому що навіть я не люблю робити важких кроків.
Сіддхарт

1
Не дуже відповідна відповідь на тему "Як увімкнути підпис підключення до Google Play" ...
Бен Мадсен

2
І що ви пропонуєте як сприятливий спосіб це зробити?
Стерлінг Діаз
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.