Potpisivanje koda za Android

U ovom članku ćete saznati kako da kodirate znak za Android (APK). Potrebno je da potpišete aplikaciju ako Android ste izabrali Android kao jednu od platformi tokom kreiranja i izrade vašeg projekta završetka.

Važno

Ako želite da umesto toga potpišete AAB aplikaciju za distribuciju u prodavnici Google Play, pogledajte članak Potpisivanje aplikacije.

Pripremite svoj računar

Za početak su vam potrebne sledeće informacije:

Generišite ključeve

Napomena

Preskočite da biste potpisali APK paket ako ste već generisali ključeve i hash potpisa prilikom kreiranja registracije aplikacije.

Koristićemo keytool.exe (dostupno nakon instalacije paketa Android Studio, sa lokacije fascikle "Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe") da bismo kreirali certifikat za potpisivanje paketa aplikacija. Keytool se koristi za upravljanje skladištem (bazom podataka) ključeva za šifrovanje, X.509 lancima certifikata i pouzdanim certifikatima.

Da biste generisali ključ, otvorite komandnu liniju i pokrenite sledeću komandu:

keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000

Parametri:

  • genkey – komanda za generisanje ključa.
  • pseudonim- označava pseudonim koji će se ubuduće koristiti za upućivanje na stavku u kojoj se nalaze ključevi koji se generišu.
  • keyalg – naziv algoritma ključa.
  • keystore – naziv skladišta ključeva koje koristite.
  • keysize – veličina svakog ključa koji treba generisati.
  • validity – važenje ključa u broju dana.

Primer:

  • Ako pripremate Key Vault, PATH_TO_KEYSTORE da imate .pfx ekstenziju.

    keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000

  • Ako se pripremate za ručno potpisivanje, PATH_TO_KEYSTORE treba da ima oznaku tipa datoteke .jks.

    keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000

Snimak ekrana sa komandom keytool koja koristi parametre u gorenavedenom primeru.

Generisanje heša potpisa

Napomena

Preskočite da biste potpisali APK paket ako ste već generisali ključeve i hash potpisa prilikom kreiranja registracije aplikacije.

Nakon generisanja ključa, komanda exportcert se koristi u ključnoj reči za izvoz certifikata u ključnoj reči.

keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64

Parametri:

  • exportcert – čita iz skladišta certifikat povezan sa pseudonimom i skladišti ga u cert_file datoteku. Kada nije navedena nijedna datoteka, certifikat izlazi u stdout.
  • alias – pseudonim koji se koristi prilikom generisanja ključeva ranije.
  • keystore – naziv skladišta ključeva koje koristite.
  • openssl – generiše SHA1 ključ za Android.

Dodajte generisani hash potpisa u URI preusmeravanja tokom registracije aplikacije.

Ručno konvertovanje SHA1 heksadecimalne oznake u heš potpisa kodiran u Base64

Možda ćete videti sledeću grešku ako hash potpisa nije ispravno kodiran ili neprihvatljiv na Azure portalu:

„Heš potpisa mora biti Base64 kodirani SHA1.“

Kada se pojavi ova greška, pokušajte da generišete heš potpisa koristeći sledeće korake:

  1. Pokrenite keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE da biste listali informacije o certifikatu u režimu detaljnog prikaza.
  2. Kopirajte vrednost SHA1 ispod odeljka Otisci certifikata iz izlaza. Uverite se da kopirate samo heksadecimalnu vrednost.
    Na primer: EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
  3. Koristite bilo koji raspoloživi konvertor tipa „Heksadecimalno u Base64“ da biste konvertovali kopiranu heksadecimalnu vrednost otiska certifikata u Base64 kodiranu vrednost.
    Primer Base64 kodirane vrednosti: 8CPPeLaz9etdqQyaQubcqsy2Tw=
  4. Kopirajte generisanu base64 kodiranu vrednost kao hash potpisa na Azure portalu dok registrujete aplikaciju.

Potpišite APK paket

Da bismo potpisali APK paket, koristićemo alatku apksigner. Ova alatka vam omogućava da potpišete APK i uverite se da je potpis APK paketa uspešno verifikovan na svim Android platformama koje podržavaju APK.

Pronađite svoj apksigner

  1. Proverite putanju za Android SDK u programu Android Studio.

  2. Izaberite Alat > Menadžer SDK > Lokacija Android SDK.

    Ako koristite iOS, pogledajte datoteku apksignera iz direktorijuma buildTools Version :

    Idite u direktorijum SDK > build-tools > buildToolsVersion > lib i proverite datoteku apksigner.jar

Korišćenje apksigner datoteke

Pokrenite sledeću komandu da biste koristili apksigner i potpisali paket:

apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK

Parametri:

  • ks – putanja do skladišta ključeva.
  • ks-key-alias – putanja pseudonima ključa do APK datoteke.

Kada se od vas zatraži, unesite lozinku.

Još informacija: Android Studio alati komandne linije: apksigner

Distribuiranje aplikacije

Paket možete da hostujete u distributivnom servisu kao što je App Center. Da biste distribuirali pomoću programa Microsoft Intune, pogledajte Dodavanje Android poslovne aplikacije u Microsoft Intune. Da biste saznali više o davanju pristupa aplikaciji za uslugu zaštite aplikacije Intune, pogledajte članak Davanje pristupa za aplikaciju usluzi zaštite aplikacija Intune.

Pogledajte i ovo