Lecții 123

- crea chei și să o semneze

Tema acestei lecții nu este legată direct de programare. Și este posibil în prezent să cod fără această cunoaștere. Dar pentru dezvoltarea generală, cred că încă merită o discuție. Această cunoaștere va fi de folos, de exemplu, atunci când se face o cerere la Google hartă, sau când încărcați creația pe piață.

cererile de semnătură

În general, cheia privată / publică și certificatul sunt implicate în procesul de semnare și verificare. Dacă sunteți interesat, vă puteți Google aceste concepte și a verifica detaliile. I, pentru a nu complica lecția, eu voi numi doar toate cheile. Pentru a înțelege tema lecției va fi suficient.

Ați creat o aplicație și doriți să-l testați pe un dispozitiv sau cu ajutorul emulator. Pentru a instala și rula aplicația, acesta trebuie să fie semnat. Dacă nu au fost încă publicate pe magazinul de aplicatii, mai ales, despre faptul că este necesar să semneze cererea, puteți auzi prima dată. Și amintiți-vă doar că, cu oricare dintre semnăturile nu sunt ocupate. Crearea de proiecte, tot ce kodili ai nevoie, salvați și a alerga și totul a mers bine. Acest lucru sa întâmplat din cauza cheie Eclipse sa creat el însuși, și el a semnat cererea pe care cheia pentru tine la început nu trebuie să se gândească la asta. Iar atunci când este instalată aplicația, acesta a fost deja semnat. Și dacă încercați să instalați o aplicație fără semn, veți obține o eroare.

Astfel, cererea ar trebui să fie semnat și Eclipse rugăm să-l ia asupra sa. El le semnează REMEDIERE-cheie. valabilitatea acestuia înainte de a exista doar un an. Android verifică validitatea unei chei numai la instalarea. Ie Dacă ați instalat aplicația și cheia de licență a expirat, veți fi în continuare posibilitatea de a utiliza aplicația instalată. Dar, pentru a instala sau actualiza o aplicație, semnat de expirarea unei chei, nu va funcționa. Sistemul va genera o eroare.

Lecții 123

fișier debug.keystore extensia keystore. Acesta poate fi tradus ca depozitul de chei. Acest lucru este adevărat, un astfel de fișier poate conține mai multe chei. Pentru a face apel la o anumită cheie în cadrul magaziei folosind alias (alias, îl puteți considera ca un nume-cheie).

Să vedem ce opțiuni există în magazin debug.keystore. Utilizați comanda listă. Cu setările depozitului de chei și noi punctul storepass numele de fișier de stocare și parola seifului:

keytool -list -keystore debug.keystore -storepass Android

Lecții 123

Să creeze propria cheie. Pentru aceasta folosim echipa genkey și este o grămadă de opțiuni.

keytool -genkey -keystore mykeys.keystore -storepass spassword -alias mykey1 -keypass kpassword1 -dname "CN = Dmitry Vinogradov O = C = StartAndroid RU" -validity 10000

Lecții 123

Se pare groaznic, dar este de fapt ușor. Doar trebuie să înțeleagă următoarele:
stocare - un fișier și este protejat prin parolă
în cheia de stocare este un alias și parola
conține, de asemenea, informații cheie despre proprietar și are o durată limitată

Este acești parametri mai sus, specificăm în scenariu.

keystore - magazin de nume de fișier
storepass - parola seifului
alias - cheia pentru a crea un alias
KeyPass - parola cheii
DNAME - informații despre proprietarul cheii
valabilitate - valabilitatea cheii (în zile)

DNAME specificate într-un format specific. Am doar numele, organizația și țara.

După rularea această comandă pentru a crea un depozit cheie mykeys.keystore cu parametrii de mai sus. Dacă acest magazin nu există, este creat.

Acum să utilizați din nou comanda listă și o privire la cheie nou creat

keytool -list -keystore mykeys.keystore -storepass spassword

Lecții 123

Vedem că, în orice mod, la fel cum am creat - o mykey1 alias.

Există, de asemenea, pot fi plasate doua cheie. Dar acum putem scrie script-cheie generație într-o formă prescurtată. Nu vom specifica o parolă pentru seiful și cheia și informații despre proprietar.

keytool -genkey -keystore mykeys.keystore -alias mykey2 -validity 10000

Lecții 123

iar programul ne va întreba despre datele care lipsesc. În primul rând, parola seifului, atunci datele despre proprietarul cheii (am completat toate valorile necesare), apoi parola pentru cheia nou creată, și confirmarea parolei.

Functional, nu există nici o diferență, dar cu aceasta metoda nu trebuie să știe DNAME format de intrare parametru (toate de utilitate se întreabă), și din afară nu sunt vizibile parolele pe care le-ați introdus.

Acum doi magazin cheie. Efectuați lista și asigurați-vă.

keytool -list -keystore mykeys.keystore

Vă rugăm să rețineți că nu am introduce parola din depozit (de exemplu, astfel încât să nu „strălucească“ l). Utilitarul mă va întreba:

Lecții 123

Este evident că el a fost cerut o parolă și bolta sunt acum două chei.

Lista comandă poate efectua în continuare cu parametrul v. Această opțiune adaugă conținutul de informații.

Lecții 123

Acum, pentru fiecare cheie poate fi văzut nu numai numele alias și data creării, dar, de asemenea, INFA despre proprietar, data de expirare, și așa mai departe.

Parametrul V poate fi, de asemenea, utilizat cu echipa genkey. După crearea tastei va afișa unele informații despre aceasta în consolă.

Așa că am făcut cu keytool. Noi știm cum să creați un depozit cu tastele și modul în care te uiți la vechiul celor existente. Rămâne pentru a afla cum să vă cheia aplicației. Pentru a face acest lucru, utilizați un alt instrument - jarsigner.

script semnătură arată astfel:

jarsigner -keystore mykeys.keystore -storepass spassword -keypass kpassword1 Package1.apk mykey1

Numele parametrilor ne sunt familiare de keytool: stocare (keystore), parola (storepass) la aceasta și parola (KeyPass) la cheia. Iar ultimii doi parametri - numele APK-fișier pe care doriți să semneze și alias depozitul de chei specificat că doriți să îl utilizați pentru semnătură.

Cererea va fi semnat, iar sistemul va lua pentru instalare.

Pentru distracție, să încercăm să instaleze un fișier APK nesemnat. Pentru a crea este necesar să faceți clic dreapta pe proiectul în Eclipse și selectați instrumentele Android> Export nesemnate pachetul de aplicare. În continuare, specificați calea în cazul în care pentru a salva APK-fișier. Eclipse creează o aplicație de proiect și salvează-l în directorul specificat. După aceea, se afișează un mesaj pe care trebuie să semneze și să comprime înainte de publicarea cererii de (zipalign de utilitate).

Lecții 123

Încercați să instalați o aplicație de pe emulator folosind ADB. Obținem o eroare Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]:

Lecții 123

Sistemul detectează că cererea nu este semnat.

În cazul în care prima aruncare din fișierul APK emulator și lansa managerul de fișiere acolo, vom primi următorul mesaj în timpul instalării:

Lecții 123

Eclipse oferă un asistent care vă permite să pună în aplicare toate pașii de mai sus pentru pregătirea cererilor care urmează să fie instalate. Pentru a face acest lucru pe un proiect în Eclipse, faceți clic dreapta și selectați instrumentele Android> Export Semnate pachetul de aplicare.

Expertul doar în cazul în care va clarifica proiectul

Lecții 123

Apoi, va trebui să aleagă: să utilizeze un depozit existent sau creați unul nou. Dacă utilizați un existent, apoi selectați-o și introduceți parola pentru acest depozit.

Lecții 123

Faceți clic pe Următorul și expertul care solicită din cheile existente pentru a utiliza, sau oferă posibilitatea de a crea unul nou.

Lecții 123

Alegerea o cheie existentă, introduceți parola pentru

Lecții 123

Rămâne pentru a specifica calea și numele fișierului în cazul în care Eclipse va salva gata semnat și de compresie aplicații. În același timp, el arată imediat valabilitate a certificatului.

Lecții 123

Faceți clic pe Finish, și pentru a obține gata de aplicare pe care le puteți publica pe piață.

Dacă aveți încă nici o idee, expertul va ajuta să-l creați, astfel încât nu trebuie să te pui în jurul cu consolă și keytool.

În acest caz, specificați că doriți să creați magazia

Lecții 123

Apoi, trebuie să creați o cheie

Lecții 123

Aici puteți specifica un alias, parola, data de expirare (în ani) și proprietarul vechi.

Ei bine, rămâne să indice calea către fișierul creat

Lecții 123

Ideea este că am putea să-ți arăt acest expert, care va face totul pentru tine, dar cred că nu ar fi înțeles importanța tuturor ecranelor și domeniile sale. Și acest lucru nu este o bună practică - de a folosi ceea ce nu înțelegi. Așa că am pictat în detaliu mecanismul de chei și semnarea cererii, astfel încât să imagina, modul în care procesul de luare și expertul.

În următoarea lecție:

- înțelegem că o astfel de pachet al aplicației

Vino alaturi de noi in telegrama: