Навигация по сайту

Популярные статьи

Стварэнне подпісы прыкладання з дапамогай Google Play App Signing

  1. Як скінуць ключ загрузкі?
  2. Як падпісацца, калі дадатак ўжо апублікавана?

Post Views 9 911

Post Views 9 911

Паколькі ключ подпісы выкарыстоўваецца для праверкі таго, што менавіта вы з'яўляецеся распрацоўшчыкам прыкладання, і для забеспячэння бяспечных абнаўленняў для вашых карыстальнікаў, забеспячэнне бяспекі ключа вельмі важна як для вас, так і для карыстальнікаў. Існуюць розныя спосабы падпісання сваіх прыкладанняў, адзін з такіх мы разгледзелі ў папярэдняй артыкуле .

Нядаўна Google дадаў новую магчымасць захоўваць ключы: у сваёй уласнай інфраструктуры дзякуючы Google Play App Signing . Асноўнае адрозненне тут заключаецца ў тым, што вы падпісваеце прыкладанне адмысловым ключом загрузкі, які Google правярае і выдаляе, замяняючы яго арыгінальным ключом подпісы прыкладання, які вы падалі.

З яго дапамогай можна кіраваць ключамі подпісы прыкладанняў як для новых, так і для апублікаваных прыкладанняў, якія ў сваю чаргу будуць захоўвацца ў Google у іх уласнай сховішча ключоў. Каб далучыцца да гэтай праграме, неабходна падпісацца на яе ў сваёй Google Play Console. Варта адзначыць, што ў наступстве адпісацца ад яе ўжо будзе немагчыма.

Такім чынам, пры падключэнні да Google Play App Signing адбываецца наступнае:

  • Бестэрміновая рэгістрацыя вашага прыкладання ў праграме Google Play App Signing.
  • Перадача вашага ключа подпісы прыкладання ў Google.
  • Рэгістрацыя новага ключа загрузкі для ўсіх наступных APK-файлаў.

Такі спосаб вельмі карысны, паколькі ў выпадку, калі вы страцілі сховішча ключоў, Google Play App Signing дазволіць скінуць ключ для ўстаноўкі новага. Пагадзіцеся, гэта нашмат прасцей, чым кожны раз публікаваць прыкладанне зноўку з новым імем пакета і ключом.

Паспрабуем, выкарыстоўваючы гэты спосаб, апублікаваць новае прыкладанне: Менеджэр сістэмных прыкладанняў .

Для пачатку неабходна стварыць ключ загрузкі, па якім Google будзе правяраць APK. Для гэтага сродкамі Android Studio праз меню Build - Generate Signed APK створым новае сховішча ключоў, у якім будзе ўтрымлівацца наш ключ загрузкі. Стварэнне подпісы прыкладання будзе адбывацца з дапамогай Gradle, а файл, які змяшчае шлях да сховішчы і паролі, вынесем з праекту і будзем захоўваць асобна.

signingConfigs {release {if (project.hasProperty ( "Keys.repo")) {def projectPropsFile = file (project.property ( "Keys.repo") + "/system-app-manager.properties") if (projectPropsFile.exists ()) {Properties props = new Properties () props.load (new FileInputStream (projectPropsFile)) storeFile file (file (project.property ( "Keys.repo") + props [ 'RELEASE_STORE_FILE'])) storePassword props [ 'RELEASE_STORE_PASS '] keyAlias ​​props [' RELEASE_ALIAS '] keyPassword props [' RELEASE_KEY_PASS ']}} else {println "============================ =========================== "println" [ERROR] - Please configure release-compilation environment - eg in ~ / .signing directory "println "================================================= ====== "}}}

Пра тое, як гэта можна зрабіць для свайго прыкладання, можна пачытаць у дадзеным артыкуле .

Цяпер пяройдзем ў кансоль распрацоўніка. Створым новае прыкладанне і дамо яму назва. Пасля гэтага трэба перайсці ў «Версіі прыкладання» - «Упраўленне працоўнай версіяй» - «Стварыць выпуск«. Тут вам будзе прапанавана падлучыцца да програме Google Play App Signing, націскаем «Працягнуць«.

Тут вам будзе прапанавана падлучыцца да програме Google Play App Signing, націскаем «Працягнуць«

Калі перайсці ў «Подпісы прыкладання«, то можна выявіць, што быў створаны сертыфікат для подпісы, аднак сертыфікат загрузкі застаўся пустым. Гэта таму, што мы яшчэ не загрузілі першы падпісаны APK файл.

Гэта таму, што мы яшчэ не загрузілі першы падпісаны APK файл

Вернемся ў стварэнне выпуску. Пасля атрымання пацверджання пра тое, што мы падключыліся да праграмы, можна перайсці да загрузкі APK.

Пасля атрымання пацверджання пра тое, што мы падключыліся да праграмы, можна перайсці да загрузкі APK

Тут трэба загрузіць APK файл свайго прыкладання, падпісаны ключом, які быў створаны вышэй. Гэты ключ і стане ключом загрузкі для прыкладання, якім вы павінны будзеце падпісваць усе APK ў будучыні.

Пасля таго, як вы загрузіце APK, падпісаны ключом загрузкі, яго сертыфікат з'явіцца ў «Подпісы прыкладання«.

Пасля запаўнення ўсіх неабходных палёў у кансолі і публікацыі прыкладання ў Google Play, у дадатку ўжо будзе выкарыстоўвацца іншы ключ подпісы, які будзе знаходзіцца ў Google і адпраўляцца карыстальнікам пры загрузцы прыкладання з маркета.

Даведацца, што прыкладанне падпісана Google, а не самім распрацоўшчыкам, можна па наступным элементу метададзеных, што ўтрымліваецца ў тэгу <application> у файле маніфесту:

<Meta-data android: name = "com.android.vending.derived.apk.id" android: value = "[ID]" />

Як скінуць ключ загрузкі?

У выпадку, калі вы страцілі свой ключ загрузкі ці ён быў выкрадзены кім-небудзь, вы можаце скінуць яго ў кансолі распрацоўніка. Каб зрабіць гэта, трэба:

  1. Стварыць новы ключ загрузкі аналагічна таму, як гэта рабілася ў пачатку артыкула. Затым яго трэба будзе экспартаваць у сертыфікат PEM з дапамогай наступнай каманды. keytool -export -rfc -alias upload -file <upload_certificate.pem> -keystore <keystore.jks>
  2. Пасля стварэння сертыфіката трэба звярнуцца ў службу падтрымкі па наступнай спасылцы , Запоўніўшы ўсе палі і прымацаваўшы файл сертыфіката. Як толькі запыт будзе апрацаваны, вам на электронную пошту прыйдуць інструкцыі па змене ключа.

Спампуем апублікаванае прыкладанне і паглядзім, што ў яго ўнутры. Для гэтага скарыстаемся любым декомпилятором APK файлаў.

Калі адкрыць маніфест прыкладання, то ўсярэдзіне можна выявіць тую самую радок з метададзенымі, пра якую мы казалі вышэй.

Калі адкрыць маніфест прыкладання, то ўсярэдзіне можна выявіць тую самую радок з метададзенымі, пра якую мы казалі вышэй

Дадзены ідэнтыфікатар будзе выкарыстоўвацца ў інструментах справаздачнасці аб памылках і па ім можна вызначыць патрэбны APK-файл.

На жаль, аптымізацыі APK не адбываецца, як было заяўлена распрацоўшчыкамі. Google Play павінен прадастаўляць аптымізаваны APK з патрэбнымі лакалямі і шчыльнасцю экрана. Аднак калі паглядзець, што знаходзіцца ў рэсурсах дэкампіляваць APK, то можна выявіць там усё лакалізацыі, якія былі створаны для прыкладання, і разметкі экранаў з шчыльнасцю.

Акрамя декомпилятора гэта таксама можна праверыць утылітай aapt.exe (Android Asset Packaging Tool), якая ўваходзіць у склад Android SDK. Для гэтага трэба ўвесці наступную каманду:

aapt dump badging apk_name.apk

apk

Як падпісацца, калі дадатак ўжо апублікавана?

У выпадку, калі вы хочаце падпісаць сваё апублікаванае дадатак на Google Play App Signing, то вам трэба будзе ў кансолі распрацоўніка адкрыць праект прыкладання і затым выбраць «Упраўленне рэлізам» - «Версіі прыкладання«.

У якое адкрылася акне акрамя розны варыянтаў зборак і версій вашага прыкладання павінна з'явіцца запрашэнне падлучыцца да Google Play App Signing.

Вам перакіне на старонку «Подпісы прыкладанняў" з апісаннем праграмы. Вам трэба будзе адтуль спампаваць ўтыліту PEPK і з дапамогай яе выканаць наступную каманду, замяніўшы выдзеленыя ўчасткі на свае:

java -jar pepk.jar --keystore = ваше_хранилище_ключей.keystore --alias = имя_ключа --output = новый_путь_для_созданного_сертификата --encryptionkey = eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

Гэтая ўтыліта дазваляе вам атрымаць пэўны ключ са сховішча ключоў і экспартаваць яго ў PEM сертыфікат. Для прыкладу паспрабуем экспартаваць ключ для іншага прыкладання. Пасля ўводу каманды нас папросяць ўвесці паролі ад сховішча і ад ключа, і калі ўсё завершыцца без памылак, значыць аперацыя выканана паспяхова.

Калі PEPK выдае памылку на няправільны alias, хоць вы цалкам упэўненыя, што ён верны - паспрабуйце напісаць яго толькі маленькімі літарамі, калі ў ім маюцца загалоўныя.

Затым на той жа старонцы ў кансолі распрацоўніка трэба націснуць на «Закрыты ключ для подпісу прыкладання» і выбраць наш створаны сертыфікат. Такім чынам Google зразумее, што менавіта мы з'яўляемся распрацоўшчыкам прыкладання. Пасля гэтага можна пачынаць стварэнне ключа загрузкі, па якім у будучыні будзе адбывацца публікацыя ўсіх APK-файлаў.

Для гэтага трэба стварыць ключ тым жа спосабам, якім мы стваралі яго ў пачатку артыкула. Затым з дапамогай стандартнай ўтыліты Java пад назвай Keytool трэба будзе экспартаваць ключ у PEM сертыфікат з дапамогай наступнай каманды:

keytool -export -rfc -keystore ваше_хранилище_ключей -alias имя_ключа -file путь_для_сертификата

На старонцы кансолі распрацоўніка націскаем «Сертыфікат адкрытага ключа загрузкі» і выбіраем створаны сертыфікат з ключом загрузкі.

Пасля праведзеных аперацый у нас стане актыўная кнопка «Зарэгістраваць», націскаем яе і, калі няма ніякіх памылак, Google Play App Signing будзе падлучаны да вашаму з дадаткам і вы ўбачыце адбіткі сертыфіката.

Цяпер вы можаце загружаць новыя APK, падпісваючы іх сваім ключом загрузкі, пасля чаго Google будзе замяняць яго на ключ з уласнага сховішчы.

Новая тэхналогія ад Google трохі палегчыла жыццё распрацоўнікам, будзем жаць, калі яна сапраўды аблегчыць выхадны APK -файл.

Чытайце таксама

Як скінуць ключ загрузкі?
Як падпісацца, калі дадатак ўжо апублікавана?