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ția 123 (-keystore mykeys keystore -storepass) Lecții 123](https://webp.images-on-off.com/25/768/434x328_whue9ml0wri0bjoxrf9o.webp)
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ția 123 (KeyPass) Lecții 123](https://webp.images-on-off.com/25/768/434x219_y0upmffkylwabjpbrbx2.webp)
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ția 123 (cerere) Lecții 123](https://webp.images-on-off.com/25/768/434x219_hd9tmot8calnu112b4x5.webp)
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ția 123 (valabilitate) Lecții 123](https://webp.images-on-off.com/25/768/434x219_y8afnjdhjxn0y0266c9d.webp)
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ția 123 (depanare) Lecții 123](https://webp.images-on-off.com/25/768/434x219_molym56mottdj0021kil.webp)
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ția 123 (alias) Lecții 123](https://webp.images-on-off.com/25/768/434x219_amiexbklk572f76nargs.webp)
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ția 123 (lecție) Lecții 123](https://webp.images-on-off.com/25/768/434x435_dt2ksi9yee3qdcy4bolv.webp)
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ția 123 (storepass) Lecții 123](https://webp.images-on-off.com/25/768/434x208_6ga8dz7ya8lak6eq9r8n.webp)
Încercați să instalați o aplicație de pe emulator folosind ADB. Obținem o eroare Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]:
![Lecția 123 (storepass) Lecții 123](https://webp.images-on-off.com/25/768/434x219_jth1grbsg5gz4xdujqw1.webp)
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ția 123 (semnătura) Lecții 123](https://webp.images-on-off.com/25/768/320x480_jmx7bjy3ij80dqq49q21.webp)
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ția 123 (keytool) Lecții 123](https://webp.images-on-off.com/25/768/434x403_4ly199wcs6qm7icim7xb.webp)
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ția 123 (lecție) Lecții 123](https://webp.images-on-off.com/25/768/434x403_5t1gejj3k1n0rduzmqey.webp)
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ția 123 (semnătura) Lecții 123](https://webp.images-on-off.com/25/768/434x403_chpnpod2rv1yp002e7x0.webp)
Alegerea o cheie existentă, introduceți parola pentru
![Lecția 123 (jarsigner) Lecții 123](https://webp.images-on-off.com/25/768/434x403_gzm2n73nxtmbkzc3ng3x.webp)
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ția 123 (semnătura) Lecții 123](https://webp.images-on-off.com/25/768/434x403_91ge3jxn9kfup1klgu2u.webp)
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ția 123 (valabilitate) Lecții 123](https://webp.images-on-off.com/25/768/434x403_94ge3hl12aqd4j6hof49.webp)
Apoi, trebuie să creați o cheie
![Lecția 123 (genkey) Lecții 123](https://webp.images-on-off.com/25/768/434x403_er8baufj0oonm9huwx2k.webp)
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ția 123 (cheie) Lecții 123](https://webp.images-on-off.com/25/768/434x403_yjt3mt5s8qiytearxcg2.webp)
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: