Računala Windows Internet

Kako ispravno potpisati APK igru ​​ili aplikaciju na Androidu. kako potpisati apk s gradle kako potpisati apk datoteku za google play

Dakle, radili ste mnogo dana (a možda i noći), a sada je spremna vaša prva hibridna mobilna aplikacija. Prilično je stabilan, većina kritičnih bugova je zatvorena. Ostali su mali, ali sjetivši se da je perfekcionizam zlo, donosite čvrstu odluku da objavite aplikaciju.

Preduvjet za to je prisutnost potpisane APK datoteke. Kako potpisati apk datoteku, naučit ćete iz ovog članka.

mala digresija

Kada se moj projekt za kućne ljubimce približio objavi, počeo sam tražiti informacije o tome kako brzo i bezbolno objaviti aplikaciju. Mnoge pronađene upute izgledale su jednostavno. Odabrao sam upute autora Ionic frameworka na kojem je aplikacija razvijena. Nije sve uspjelo prvi put, postoji nekoliko značajki. Proces potpisivanja opisan je u ovom članku, istaknute su važne točke.

Početni podaci

Pretpostavljam da imate sve što vam je potrebno za razvoj hibridnih mobilnih aplikacija s Apache Cordovom. Mora biti instaliran:
  • Apache Cordova
  • Java razvojni komplet
  • Android SDK alati
lcf se koristi kao naziv projekta i aplikacije. Zamijenite imenom svog projekta gdje je potrebno.

Ići

Prvo morate izraditi verziju svoje aplikacije. No prije toga provjerimo jesu li uklonjeni svi nepotrebni dodaci. Na primjer, ne trebamo dodatak koji ispisuje informacije o otklanjanju pogrešaka na konzolu. Uklonimo ga:

$ cordova dodatak rm cordova-plugin-console
Za generiranje verzije izdanja za Android upotrijebite naredbu izgraditi sa zastavom -- puštanje:

$ cordova build --izdanje androida
Ova naredba će stvoriti nepotpisan APK datoteka u direktoriju:

platforme/android/build/outputs/apk
Na primjer platforme/android/build/outputs/apk/ android-release-unsigned.apk. Zatim moramo potpisati ovu datoteku i pokrenuti uslužni program zipalign za optimizaciju i pripremu datoteke za Google Play.

Za potpisivanje datoteke potreban je certifikat. Kreirajmo ga pomoću uslužnog programa ključni alat koji je uključen u JDK:

$ keytool -genkey -v -keystore lcf.keystore -alias lcf -keyalg RSA -keysize 2048 -valjanost 10000
Važno

Vrijednost parametra -alias mora se zapamtiti, ali bolje ju je zapisati. U gornjem primjeru jednak je lcf (prema prvim slovima naziva aplikacije Loyal Client Free). Ovdje neću iznositi detalje, ako ste zainteresirani, napišite u komentarima, reći ću vam više.

Alias ​​se koristi svaki put prilikom potpisivanja * aplikacije. Da biste ga lakše zapamtili, upotrijebite naziv datoteke pohrane ključeva kao pseudonim, na primjer:


-keystore hello-world.keystore -alias hello-world -keystore weather-app.keystore -alias weather-app -keystore todo.keystore -alias todo
* Morate potpisati aplikaciju sa svakim izdanjem ažuriranja

Korisnost ključni alat postavlja niz pitanja. Bit će ih ukupno 8. Kako biste unaprijed imali ideju o pitanjima i okvirnim odgovorima, sva su navedena ispod, ispod spojlera.

pitanja o ključnim alatima i uzorci odgovora

1. Unesite lozinku za pohranu ključeva:
Ovdje morate unijeti lozinku za datoteku (najmanje 6 znakova). Unesena lozinka mora biti zapisana na sigurnom mjestu, potrebna je svaki put prilikom potpisivanja prijave.

2. Ponovno unesite novu lozinku:
Lozinka za ponovni ulazak.

3. Koje je vaše ime i prezime?
: Ivan Petrov
Vaše ime i prezime. Vrijednost u uglatim zagradama je zadana vrijednost.

4. Kako se zove vaša organizacijska jedinica?
: TO
Naziv odjela vaše tvrtke. Možete ostaviti prazno, ja navedem IT.

5. Kako se zove vaša organizacija?
: 2 programera
Naziv vaše organizacije. Navedite ako ih ima.

6. Kako se zove vaš grad ili naselje?
: Moskva
Ime grada

7. Kako se zove vaša država ili pokrajina?
: MO
Naziv regije

8. Koji je dvoslovni kod zemlje za ovu jedinicu?
: EN
Kod države. Naznačavam RU.

: y

Potvrdite je li sve ispravno ili pritisnite Enter za ponovni ulazak.


Na kraju će se pojaviti poruka o uspješnom generiranju ključa. Od vas će se tražiti da postavite lozinku za privatni ključ (ako želite ostaviti isto kao i za certifikat, pritisnite Enter):

Generiranje 2 048-bitnog RSA para ključeva i samopotpisanog certifikata (SHA256withRSA) s valjanošću od 10 000 dana za: CN=Ivan Petrov, OU=IT, O=2programeri, L=Moskva, ST=MO, C=RU Unesite ključ lozinka za (VRAĆANJE ako je isto kao lozinka za pohranu ključeva):
Datoteka će biti kreirana u trenutnom direktoriju lcf.keystore.

Važno

Stvorena datoteka mora biti spremljena na sigurno mjesto. Ako koristite privatno spremište, tada se datoteka može predati zajedno s izvornim kodovima aplikacije. Općenito, certifikate je najbolje pohraniti odvojeno. Ako izgubite certifikat, nećete moći objaviti ažuriranja aplikacije.

Preostala su dva koraka i imat ćete APK datoteku spremnu za distribuciju. Prelazimo izravno na potpisivanje.

Da biste potpisali svoju apk datoteku, koristite uslužni program jarsigner, koji je također uključen u JDK.

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore lcf.keystore android-release-unsigned.apk lcf
Naziv certifikata navodi se nakon parametra -skladište ključeva, alias - nakon naziva datoteke.

Konačno, da bismo optimizirali apk datoteku, koristit ćemo uslužni program zipalign:

$ zipalign -v 4 android-release-unsigned.apk LoyalClientFree.apk
Posljednji parametar je naziv datoteke koju ćete prenijeti na Google Play.

Važno.

Korisnost zipalign dio je Android SDK alata i može se naći ovdje:

/path/to/Android/sdk/build-tools/VERSION/zipalign

Zaključak

Sada imate apk datoteku spremnu za distribuciju koja se može prenijeti na Google Play. Ispunite opis, odredite ocjenu svoje aplikacije i slobodno kliknite "Objavi".

Pošto sam i sam proguglao pitanje kako potpisati apk datoteku?", znam da nije tako lako pronaći stvarno ispravnu i razumljivu uputu u svemu. Zato sam odlučio sam napisati materijal o tome kako pravilno potpisati svoj program ili igru ​​na Androidu.

Kao što sada znate, bez digitalnog potpisa vaša se kreacija ne može plasirati na tržište, a to je već ozbiljno. Puno mladih Android developera primijetilo je da, da tako kažem, početnici potpuno zaborave potpisati svoju aplikaciju i pokušavaju nešto napraviti s njim kasnije i to se čudi zašto ne mogu izvršiti određene radnje sa svojom APK datotekom.

Dakle, nemojmo to odvlačiti i početi odmah s time kako možete potpisati svoju apk datoteku i kako je zapravo koristiti za postizanje željenog rezultata.

Ova metoda je najispravnija od svih navedenih, pa ćemo je opisati u ovom materijalu. Izradit ćemo vlastite ključeve s našim podacima i certifikatima i koristiti ih za potpisivanje aplikacije koju ste izradili.

Za rad su nam potrebni: OpenSSL i SignApk.

Prvo napravimo certifikat i ključ za potpisivanje. Instalirajte OpenSSL. Tijekom instalacije, instalacijski program će od vas tražiti da kopirate komponente u Windows mapu, odaberite mapu Bin, koja će biti mjesto gdje ćete instalirati cijeli OpenSSL.

Sada otvorite u ime administratora sustava (ovo je vrlo važno!) naredbeni redak. Zatim u naredbenoj liniji idite na mapu bin koja se nalazi u mapi u koju ste instalirali OpenSSL (na primjer, C:\OpenSSL\bin\ ili C:\Program Files\OpenSSL\bin\). Ako ne znate, premještanje u drugu mapu vrši se naredbom CD. To jest, da biste otišli u željenu mapu, trebali biste pokrenuti sljedeću naredbu:

cd C:\OpenSSL\bin\

Nakon što ste u mapi Bin, možete nastaviti izravno na izradu certifikata i ključa.

Korak 1(Izvodimo generiranje ključeva duljine 1024 bita)

Pokrenite naredbu:

openssl genrsa -out key.pem 1024

Korak 2(Na temelju ključa izrađujemo zahtjev za certifikat)

Pokrenite naredbu:

openssl req -new -key key.pem -out request.pem

U ovoj fazi morat ćete unijeti svoje podatke koji će vas identificirati u certifikatu.

Korak 3 (Generirajte privatni ključ iz certifikata)

Pokrenite naredbu:

openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem

4. korak(Izvrši generiranje javnog ključa)

Pokrenite naredbu:

openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt

U ovoj fazi, stvaranje datoteka koje su nam potrebne za potpisivanje vaših igara i aplikacija je završeno. pomoću generiranog ključa i certifikata možete potpisati koliko god želite igrica i aplikacija na Androidu.

A sada zapravo, krenimo potpisivati ​​prijavu. Raspakirajte arhivu iz SingApk-a preuzetu s gornje veze. Premjestite se iz mape Bin u kojoj smo kreirali certifikat i 2 datoteke: certifikat.pem i ključ.pk8 u mapu u koju ste raspakirali SingApk. Windows bi trebao prikazati dijaloški okvir zamjene datoteke - zamijeni.

Sada, da biste potpisali apk datoteku jedinstvenim digitalnim potpisom koji ste sami izradili, jednostavno povucite i ispustite svoju apk datoteku na sign_APK.bat. Kako ne biste povlačili datoteku iz jednog prozora u drugi (ovo nije zgodno), premjestite svoju apk datoteku u mapu sa SingApk. Nakon izvršenja, datoteka će se pojaviti u mapi sa SingApk apk_signed.apk, što će biti vaša potpisana aplikacija ili igra.

Broj pregleda: 5 618

android studio pruža široke mogućnosti i za razvoj aplikacija i za povećanje automatizacije i udobnosti pri programiranju.

Ako koristite sustav izgradnje gradle za izradu vlastitih aplikacija, također možete postaviti nekoliko opcija za izradu potpisa za svoje aplikacije.

Vjerojatno ne želite objaviti svoje potpisne ključeve, lozinke i korisnička imena u javnom (ili čak privatnom) spremištu. Stoga možete definirati ključ, lozinku i korisničko ime kao svojstva u zasebnoj datoteci.

Prije nego počnete potpisivati ​​aplikaciju, morate stvoriti novo svojstvo u datoteci gradle.properties. nazovimo to ključevi.repo i kao vrijednost navedite put do mape u kojoj će se naknadno nalaziti spremište ključeva i datoteka sa svojstvima (na primjer, C:/Users/UserName/.potpisivanje).

Keys.repo=C:/Users/UserName/.potpisivanje

Zatim morate stvoriti ovu mapu ili, ako ste naveli postojeću, otvorite je. Potrebno je stvoriti datoteku YourProjectName.properties, unutar kojeg će put do spremišta ključeva, alias ključa i lozinka biti upisani kao svojstva u sljedećem obliku.

RELEASE_STORE_FILE=/Naziv Vašeg projekta/NazivStore ključeva.jks RELEASE_STORE_PASS=****** RELEASE_ALIAS=KeyAlias ​​RELEASE_KEY_PASS=******

Kako napraviti skladište ključeva?

Ako nemate spremište ključeva, možete ga jednostavno izraditi pomoću Android Studija. Da biste to učinili, odaberite stavku izbornika Izgraditi -> Generirajte potpisani APK.

U prozoru koji se pojavi kliknite Kreiraj novi... Kao rezultat toga, otvorit će se prozor u kojem možete odrediti gdje će se nalaziti spremište ključeva (za ovu lekciju bolje je odmah odabrati put koji ste naveli u YourProjectName.properties u imovini RELEASE_STORE_FILE), kao i podatke o ključu.

Zatim morate stvoriti mapu Vaše ime projekta i tamo prenesite željenu datoteku ključeva.

Sada možete nastaviti izravno na postupak potpisivanja. Da biste to učinili, u svom projektu morate otvoriti datoteku graditi.gradle(nalazi se u mapi aplikacije). Unutar njega u bloku android morate dodati sljedeći kod.

SigningConfigs ( debug ( /* nema promjene ovdje */ ) izdanje ( if (project.hasProperty("Keys.repo")) ( def projectPropsFile = file(project.property("Keys.repo") + "/Ime vašeg projekta.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"] ) ) ostalo ( println "===================== = =================================" println " - Konfigurirajte okruženje za kompilaciju izdanja - npr. u ~/. potpisni imenik" println "============================================ == ========" ) ) )

Koje su sheme potpisa?

Postoje dvije sheme za dobivanje APK potpisa: v1 JAR i v2 Cijeli APK.

U prvom slučaju potpišite JAR-file, što je tradicionalni način potpisivanja. V1 potpis ne štiti neke dijelove APK-a, kao što su ZIP metapodaci. APK verifikator mora obraditi puno nepouzdanih (još ne provjerenih) struktura podataka, a zatim odbaciti podatke koji nisu potpisani, ostavljajući puno prostora za napad. Osim toga, APK verifikator mora dekomprimirati sve komprimirane zapise, što gubi puno vremena i memorije. Za rješavanje ovih problema razvijen je drugi schema v2 Full APK.

Shema v2 je predstavljena u Android 7.0 Nougat (API 25) i radi od verzije Android Studio 2.2 i Dodatak za Android Gradle 2.2. Ova shema omogućuje bržu instalaciju aplikacije i dobru zaštitu od neovlaštenih promjena APK-a. Sadržaj APK-a se raspršuje i potpisuje, a zatim prima Blok APK potpisa umetnut u APK.

Tijekom provjere valjanosti, v2 shema tretira APK kao blob i provodi provjeru potpisa na cijeloj datoteci. Svaka izmjena APK-a, uključujući izmjene ZIP metapodataka, poništava potpis. Ovaj oblik provjere mnogo je brži i omogućuje otkrivanje više neovlaštenih izmjena.

Novi format je kompatibilan unatrag, tako da se APK-ovi potpisani novom shemom mogu instalirati na starije uređaje (koji će jednostavno zanemariti novi potpis) sve dok su ti APK-ovi također potpisani v1 shemom.

Potpisivanje prema zadanim postavkama koristi obje sheme tako da se aplikacije mogu instalirati na bilo koji uređaj. Međutim, ako je potrebno, možete onemogućiti potpisivanje v1 ili v2. Da biste to učinili, u gornjem kodu u bloku oslobađanje samo dodajte sljedeće retke.

V1SigningEnabled lažno

V2SigningEnabled lažno

Također je važno napomenuti da morate potpisati s shemom v1 prije potpisivanja s shemom v2, jer APK neće proći v2 ako je potpisan dodatnim certifikatima nakon što je potpisan s shemom v2.

Nakon dodavanja koda, označite ovaj kod u bloku buildTipovi iznutra oslobađanje. Na primjer:

BuildTypes ( release ( minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" signingConfig signingConfigs.release)

Sada možete sigurno u stavku izbornika Izgraditi birati Napravi APK, nakon što je prethodno promijenio vrstu sklopa iz otklanjanje pogrešaka na oslobađanje. Kao što vidite, ova metoda je prikladna jer je automatska, potrebno ju je samo jednom konfigurirati i vaše pohrane ključeva mogu biti sigurna.

U članku se nalaze snimke zaslona kada se trgovina aplikacijama zvala "Android Market". Već je odrasla generacija mačaka koje nikada nisu čule za ovo ime. Ali opći princip se nije promijenio. Ostavljeno za povijest. Ne mogu se ponovno registrirati da bih napravio nove snimke zaslona.

Budući da smo zabrinuti, vježbat ćemo na mačkama. Uzmimo, na primjer, primjer iz članka i pokušajmo ga staviti na Google Play. Ako sve uspije, bit će lakše.

Prije nego što nastavite dalje, provjerite imate li spremne vlastite ikone aplikacije i naziv programa. Bit će vrlo čudno vidjeti program sa standardnom ikonom i imenom "HelloWorld" u trgovini aplikacija. Također provjerite sve unose u datoteci manifesta.

Prvi korak. On je najteži

Svaka prijava poslana u trgovinu mora imati potpisan certifikat. Certifikat vam omogućuje da se identificirate kao autor programa. A ako netko pokuša objaviti program s istim imenom kao vaš, bit će odbijen zbog sukoba imena. Naziv aplikacije je puni naziv paketa.

Kada pokrenete svoje aplikacije na emulatoru ili telefonu, razvojno okruženje automatski potpisuje program certifikatom za otklanjanje pogrešaka. Certifikat za otklanjanje pogrešaka nije prikladan za distribuciju kroz trgovinu, a aplikaciju morate potpisati vlastitim jedinstvenim certifikatom. Besplatno je, bez registracije i SMS-a.

Kreirajmo potpisanu APK datoteku, koja je nešto poput izvršne datoteke notepad.exe na Windowsima. Ako imate otvoreno razvojno okruženje Android Studio, odaberite s izbornika izgraditi | Generiraj potpisani APK....

Pojavit će se dijaloški okvir čarobnjaka koji trebate ispuniti podacima.

U prvom polju navedite put do spremišta ključeva. Ako ste već morali stvarati programe, uključujući Eclipse, možete odrediti postojeće spremište pomoću gumba Odaberite postojeće.... Ako prvi put stvarate spremište, tada odaberite gumb Kreiraj novi.... Pojavit će se novi dijaloški okvir.

U prvom polju trebate odabrati mapu pomoću gumba ... i unesite naziv datoteke za pohranu koja će dobiti ekstenziju jks.

Sada kreirate ključ za aplikaciju. U polju Alias(Nadimak) unesite naziv ključa koji vi i mačke možete razumjeti. Nije potrebno stvoriti pseudonim za svaku aplikaciju, možete koristiti jedan alias za svoje aplikacije i zasebne pseudonime za prilagođene aplikacije.

Također morate stvoriti lozinku za ključ i potvrditi je.

Ključ je dizajniran za 25 godina. Polje Rok valjanosti (godine) ostavite ga nepromijenjenim (osim ako nemate dobre razloge za suprotno).

Na kraju, ispunite podatke o sebi.

Nakon što ispunite polja, vratit ćete se na prvi prozor čarobnjaka.

Kliknite na gumb Sljedeći a u sljedećem prozoru unesite drugu lozinku za pristup bazi lozinki.

Možda nećete imati ovaj korak. Može se pojaviti ako ste označili opciju "Zapamti lozinku". Ne sjećam se detalja, sam ćeš shvatiti.

Posljednji korak je pritiskanje gumba Završi.

Ovo je nekad bio zadnji korak. Sada postoje novi potvrdni okviri V1 (potpis staklenke) i V2 (potpuni APK potpis). Provjerite barem prvu opciju V1- ovo odgovara starom načinu. Druga metoda se smatra sigurnijom u smislu hakiranja i može se koristiti za kasnije API-je, prema vašem nahođenju (vidi dolje).

Kao rezultat složenih manipulacija dijaloškim okvirima, dobit ćete dugo očekivani APK - svoj šarm, koji će vam otvoriti vrata u svijet bogatstva i sreće.

Pritiskom na gumb Pokaži u pretraživaču, pokrenut ćete File Explorer na svom računalu s mapom koja sadrži potpisanu datoteku.

Budite oprezni s generiranim ključem. On je taj koji jamči da ste novu verziju programa napisali vi. Stoga, ako izgubite kreirani ključ, morat ćete prenijeti program pod drugim imenom s novim ključem.

Studio pruža način za automatsku izradu potpisane aplikacije. Desni klik na mapu app i u kontekstnom izborniku odaberite Otvorite Postavke modula. Odaberite odjeljak app u odjeljku Moduli. Odaberite karticu Potpisivanje. Kliknite na gumb plus i popunite polja.

Idi na karticu Vrste građenja i odaberite montažu oslobađanje. U padajućem popisu Potpisivanje konfiguracije odaberite novostvorenu konfiguraciju. Prema zadanim postavkama ima naziv konfig.

Klik u redu za spremanje rezultata.

Također možete potpisivati ​​aplikacije putem naredbenog retka bez sudjelovanja studija, ako ste perverznjak. Možete pročitati dokumentaciju na ovu temu.

v2 Cijeli APK

U 2017. Google je malo promijenio proces potpisivanja. Sada postoje dvije sheme za dobivanje APK potpisa: v1 JAR i v2 Full APK.

V1 potpis (koji postoji od početka) ne štiti neke dijelove APK-a, kao što su ZIP metapodaci. APK verifikator mora obraditi puno nepouzdanih struktura podataka, a zatim odbaciti podatke koji nisu potpisani, što ostavlja puno prostora za napad. Osim toga, APK verifikator mora dekomprimirati sve komprimirane zapise, što gubi puno vremena i memorije. Za rješavanje problema razvijen je novi v2 Full APK na koji ćete se susresti prilikom potpisivanja aplikacije.

Shema v2 radi u Androidu 7.0 Nougat (API 25). Shema omogućuje bržu instalaciju aplikacije i dobru zaštitu od neovlaštenih promjena APK-a. Sadržaj APK-a se raspršuje i potpisuje, a zatim se rezultirajući blok za potpisivanje APK-a umeće u APK.

Novi format je kompatibilan unatrag, tako da se APK-ovi potpisani novom shemom mogu instalirati na starije uređaje (koji će jednostavno zanemariti novi potpis) sve dok su ti APK-ovi također potpisani v1 shemom.

U starijim aplikacijama ostavljam potvrdni okvir pored prve verzije. Možda će vas kasnije prisiliti da nasilno prijeđete na drugu verziju. Važno je napomenuti da morate potpisati s shemom v1 prije potpisivanja s shemom v2, jer APK neće proći shemu v2 ako je potpisan dodatnim certifikatima nakon što je potpisan s shemom v2.

Strogo govoreći, možete postaviti apk datoteku na svoju stranicu, a svi je posjetitelji mogu preuzeti i instalirati na svoje telefone. Ali to je nekako nedostojno u naše doba nanotehnologije. Dakle, prijeđimo na sljedeći korak.

Drugi korak. Moraš Fedya, moraš

Sljedeći korak je vrlo neugodan. Morate dati 25 zimzelenih biljaka strancu. Da se ne biste toliko uvrijedili, ova operacija se zvala kotizacija. Trebat će vam kreditna kartica s navedenim iznosom. Napominjemo da vam Visa Electron, a još više diskontna kartica lanca trgovina Perekrestok, neće odgovarati. Ako već imate potrebnu karticu, preskočite ovaj odlomak. Ostalima mogu savjetovati da nabave QIWI novčanik i tamo nabave virtualnu karticu. Upravo sam to i učinio, jer sam nerado odlazio u banku i pisao svakakve izjave.

Automatsko ažuriranje

Ako ste stvorili novu verziju programa ispravljajući razne greške i dodajući nove fotografije mačke, tada morate povećati broj verzije u manifestu za jedan (atribut kod verzije) i zamijenite naziv verzije za sebe (prikazati će se na stranici Google Play). U najnovijim verzijama studija ta svojstva sada nisu u manifestu, već u datoteci graditi.gradle modul vaše aplikacije. Prenesite novu verziju na Google Play i korisnici će automatski primiti ažuriranje.

Pratite recenzije

Instalirajte aplikaciju Google Play Developer Console na svoj uređaj kako ne biste propustili novu recenziju svoje aplikacije. Također možete vidjeti statistiku.

Promjena lozinke za trezor i alias ključeva

Nisam ga morao koristiti nekoliko godina, pa ne znam jesu li ove informacije ažurne.

Recimo da ste svoj program s izvornim kodovima prodali drugoj tvrtki. Kako bi mogla objavljivati ​​ažuriranja programa, tvrtka mora potpisati aplikaciju istim ključem kojim ste potpisali i vi. Inače će se program smatrati drugačijim i naziv paketa će se morati promijeniti. Ali tada stari korisnici neće moći primati ažuriranja.

Ali ako, na primjer, sve svoje programe potpišete istim ključem i lozinkom mačka mačka, tada tvrtka može potpisati vaše ostale aplikacije istim ključem tako što će njihove programe staviti istim imenom paketa, a vi nikome nećete ništa dokazati.

Stoga morate voditi računa o promjeni ključa za prijenos na novog vlasnika.

Pretpostavimo da naše spremište ima strukturu:

Ime skladišta ključeva: old.keystore Lozinka za pohranu ključeva: cat1 Alias: my_alias Alias ​​lozinka: cat2

Napravite kopiju svog trezora i spremite je negdje drugdje. To je trebalo biti učinjeno tijekom prve izrade, jer ako izgubite pohranu, nećete moći vratiti pristup svojim programima tijekom ažuriranja.

Ponovno napravite kopiju svog spremišta i preimenujte ga, na primjer, novo.keystore. Radit ćemo s njim.

Pokrenite uslužni program ključni alat s naredbom:

Keytool -storepasswd -keystore new.keystore

Od vas će se tražiti da unesete svoju trenutnu lozinku, a zatim unesete novu lozinku i ponovite je. Otprilike ovako:

Unesite lozinku za pohranu ključeva: Nova lozinka za pohranu ključeva: Ponovno unesite novu lozinku za pohranu ključeva:

Prvi dio zadatka je završen, lozinka trezora je promijenjena.

Ako također želite promijeniti lozinku za pseudonim, ponovno pokrenite uslužni program s naredbom:

Keytool -keypasswd -keystore new.keystore -alias my_name

Od vas će se tražiti da unesete svoju trenutnu lozinku za trezor (vašu novu lozinku), a zatim lozinku za alias. Možete unijeti novu lozinku i ona će zamijeniti staru lozinku.

Unesite lozinku za pohranu ključeva: Unesite lozinku ključa za

Alias ​​lozinka je promijenjena.

Ako vam promjena lozinke nije dovoljna i želite promijeniti ime aliasa (možda ste koristili ime svoje omiljene mačke, zašto bi drugi znali za to), onda nastavljamo s radom.

Pokrećemo naredbu:

Keytool -changealias -keystore new.keystore -alias my_alias -destalias my_new_alias

Od vas će se tražiti da unesete lozinku trezora, zatim lozinku za novi alias (trenutna lozinka), zatim novu lozinku i ponovite je. Alias ​​će se promijeniti.

Dakle, trebala su nam tri koraka da stvorimo novo spremište i alias za prijenos na stranca. Novi vlasnik trebao bi učiniti isto kako bi se uvjerio da nećete iskoristiti prednosti promijenjenih datoteka. Međutim, to je njegov problem.

Potpisujemo gotovu prijavu

Takav se slučaj može pojaviti kada ste izgubili izvorni kod i imate samo APK. To najvjerojatnije vrijedi za pirate koji ponovno potpisuju druge aplikacije (nemojte to raditi s tuđim programima).

Prvo promijenite ekstenziju iz apk u zip. Izbrišite mapu u arhivi META-INF. Vratite ekstenziju. Izbrisali ste stari potpis.

Sada trebate potpisati aplikaciju novim ključem. Unesite naredbu.

jarsigner -keystore keystore-file.jks -storepass keystore_password -keypass alias_password --signedjar signed-apk-file.apk apk-file.apk alias_name

Ako je uspješno, dobit ćete poruku da je aplikacija potpisana. Zatim izvršavamo još jednu naredbu.

ANDROID_SDK_PATH/build-tools/LAST_BUILD_TOOLS_VERSION/zipalign -v 4 signed-apk-file.apk aligned-apk-file.apk

Rezultat bi trebala biti APK datoteka potpisana novim ključem. Nikada ga nisam koristio.

Pohrana Google ključeva

U 2017. Google je dodao novu opciju za pohranjivanje ključeva u oblak. Glavna razlika je u tome što aplikaciju potpisujete posebnim ključem za prijenos, koji Google provjerava i uklanja, zamjenjujući ga izvornim ključem za potpisivanje aplikacije koji ste dali.

Omogućuje vam upravljanje ključevima za potpisivanje aplikacija i za nove i za objavljene aplikacije, koje će Google pohraniti u vlastitu pohranu ključeva. Da biste se pridružili ovom programu, morate se pretplatiti na njega u svojoj Google Play konzoli. Vrijedi napomenuti da više neće biti moguće odjaviti se s njega.

Ova metoda je vrlo korisna - ako je pohrana ključeva izgubljena, Google Play App Signing će vam omogućiti da poništite ključ kako biste instalirali novi. Ne morate ponovno objaviti aplikaciju s novim nazivom paketa i ključem.

Dodatno čitanje

Android-keystore-password-recover by MaxCamillo - Ako ste izgubili lozinku, pokušajte koristiti ovaj alat. Nisam ga sam koristio, pa neću reći.

Posljednje ažuriranje: 30.10.2015

Nakon izrade aplikacije, testiranja i otklanjanja pogrešaka, možemo je početi objavljivati. Bit publikacije je stvoriti datoteku s ekstenzijom .apk, koji će predstavljati aplikaciju, te njezino naknadno postavljanje na Google Play Market ili druge vanjske stranice. Prema zadanim postavkama, tijekom procesa ispravljanja pogrešaka i kreiranja aplikacije, apk datoteka je već kreirana i možemo je pronaći u mapi projekta duž putanje Naziv_projekta\app\build\outputs\apk. Prema zadanim postavkama, datoteka je imenovana app-debug.apk i predstavlja verziju za otklanjanje pogrešaka.

Ali za potpunu objavu ove datoteke možda neće biti dovoljno. I još trebamo napraviti neku pripremu projekta za puštanje. Da biste to učinili, navedite u datoteci manifesta za element Postavljeni su atributi android:versionCode i android:versionName. Također u datoteci manifesta element ne smije sadržavati android:debuggable atribut

Osim toga, u ovoj fazi možete postaviti ikonu za aplikaciju koja će biti prikazana na početnom zaslonu gadgeta, naziv aplikacije (atribut android:label na elementu), a možete postaviti i licencni ugovor.

Datoteka manifesta također mora definirati naziv paketa (atribut paketa elementa ), koji će se kasnije koristiti za aplikaciju. Prema zadanim postavkama, pri razvoju u Android Studiju, paketi aplikacija počinju s com.primjer. Ne biste trebali ostaviti ovaj naziv, jer će naziv paketa služiti kao jedinstveni identifikator za vašu aplikaciju. Na primjer, ispod u mom slučaju naziv paketa je "com.maverics.eugene.telephonelist":

Štoviše, ako je u datotekama java koda, naziv paketa na početku datoteke također mora odgovarati paketu aplikacije.

Postavljanje zahtjeva

Također možete postaviti API zahtjeve tijekom faze prije izdanja. Na primjer, naša aplikacija ima određenu minimalnu verziju Android OS-a, tako da možemo postaviti odgovarajuće atribute na element u datoteci manifesta

    android:minSdkVersion - minimalna verzija Androida

    android:targetSdkVersion - optimalna verzija API-ja

    android:maxSdkVersion - maksimalna verzija sustava

Na primjer, recimo da je minimalna verzija Jelly Beansa 4.1.2, a optimalna verzija KitKat 4.4.4:

//.............................

Potpis aplikacije

Kada je sve spremno, Android aplikacija mora biti potpisana certifikatom, zahvaljujući kojem se može identificirati autor aplikacije. Kada testiramo aplikaciju tako da je instaliramo putem Android Studija na uređaj, ona se automatski potpisuje. Ali da bismo stvorili verziju izdanja, moramo izvršiti dodatni niz radnji.

Prilikom izrade certifikata, imajte na umu da kada ažurirate aplikaciju, sustav će usporediti certifikate stare i nove verzije. A ažuriranje će se dogoditi ako se certifikati obje verzije podudaraju. Ali ako je nova verzija potpisana novim certifikatom, tada će se aplikacija tretirati kao potpuno nova, nepovezana sa starom verzijom i predstavlja potpuno drugačiju aplikaciju. U tom slučaju, kako bi ga instalirali, nova verzija mora imati drugačiji naziv paketa od stare.

Najprije u Android Studiju odaberite Izrada -> Generiraj potpisani APK s izbornika. Ovo će otvoriti prozor čarobnjaka:

Kliknite na gumb Stvori novo.... Nakon toga otvorit će se prozor za kreiranje ključa:

Unesite put do datoteke mrežnog certifikata koju želite izraditi u polje Staza pohrane ključeva. Ako navedena mapa ne postoji, stvorite je ili definirajte postojeću mapu.

Navedite lozinku u polju Lozinka/Potvrda.

Navedite alias u polju Alias. Možete staviti proizvoljan naziv.

U polje Ime i prezime unesite ime i prezime. Zatim napišemo jedinicu, organizaciju, grad, državu i pozivni broj države.

Na kraju kliknite OK.

Nakon toga, prvi prozor će se automatski ažurirati:

Posljednji prozor će nam pokazati put do direktorija u kojem će se nalaziti potpisana apk aplikacija u verziji izdanja. Kliknite na Završi.

Sada, na navedenom putu, možete pronaći potpisani apk, koji će imati ime app-release.apk:

Datoteku možemo preimenovati, zadržavajući njezinu ekstenziju i prenijeti je na Play Market ili bilo koju web stranicu ili je preuzeti izravno na vaš mobilni uređaj. Nakon preuzimanja na svoj telefon/tablet, samo kliknite na njega i pomoću standardnog instalatora paketa aplikacija će se instalirati. Istina, ovdje također moramo uzeti u obzir da ako instaliramo aplikaciju ne s Play Marketa, tada u postavkama moramo dopustiti instalaciju iz drugih izvora - Sigurnost-> Nepoznati izvori (Dopusti instalaciju aplikacija iz drugih izvora)