Σύμβολο κώδικα για Android

Σε αυτό το άρθρο, θα μάθετε για την υπογραφή κώδικα για Android (APK). Χρειάζεται να υπογράψετε την εφαρμογή σας για Android, εάν επιλέξατε το Android ως μία από τις πλατφόρμες κατά τη δημιουργία του έργου συσκευασίας σας.

Σημαντικό

Αν θέλετε να εγγραφείτε αντ' αυτού σε μια εφαρμογή AAB για διανομή μέσω Google Play, ανατρέξτε στην Εγγραφή της εφαρμογής σας.

Προετοιμάστε τον υπολογιστή σας

Χρειάζεστε τις ακόλουθες πληροφορίες για να ξεκινήσετε:

Δημιουργία κλειδιών

Σημείωση

Προχωρήστε στην υπογραφή του πακέτου APK, αν έχετε ήδη δημιουργήσει κλειδιά και κατακερματισμό υπογραφής κατά τη δημιουργία της εγγραφής της εφαρμογής.

Θα χρησιμοποιήσουμε το keytool.exe (διατίθεται μετά την εγκατάσταση του Android Studio από τη θέση φακέλου "Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe") για να δημιουργήσουμε ένα πιστοποιητικό για υπογραφή του πακέτου εφαρμογής. Το εργαλείο κλειδιών χρησιμοποιείται για τη διαχείριση μιας κλειδοθήκης (βάσης δεδομένων) κρυπτογραφικών κλειδιών, αλληλουχιών πιστοποιητικών X.509 και αξιόπιστων πιστοποιητικών.

Για να δημιουργήσετε ένα κλειδί, ανοίξτε μια γραμμή εντολών και εκτελέστε την ακόλουθη εντολή:

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

Παράμετροι:

  • genkey – εντολή για τη δημιουργία ενός κλειδιού.
  • alias – δηλώνει το ψευδώνυμο που θα χρησιμοποιηθεί στο μέλλον για την αναφορά στην καταχώρηση στην κλειδοθήκη η οποία περιέχει τα κλειδιά που δημιουργούνται.
  • keyalg – όνομα αλγόριθμου κλειδιού.
  • keystore – το όνομα της κλειδοθήκης που χρησιμοποιείτε.
  • keysize – το μέγεθος κάθε κλειδιού που θα δημιουργηθεί.
  • validity – εγκυρότητα του κλειδιού σε αριθμό ημερών.

Παράδειγμα:

  • Εάν προετοιμάζετε το Key Vault, το PATH_TO_KEYSTORE πρέπει να έχει επέκταση .ax.

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

  • Εάν προετοιμάζεστε για μη αυτόματη υπογραφή, το PATH_TO_KEYSTORE πρέπει να έχει επέκταση .jks.

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

Ένα στιγμιότυπο οθόνης με την εντολή του εργαλείου κλειδιών χρησιμοποιώντας τις παραμέτρους στο παραπάνω παράδειγμα.

Δημιουργία κατακερματισμού υπογραφής

Σημείωση

Προχωρήστε στην υπογραφή του πακέτου APK, αν έχετε ήδη δημιουργήσει κλειδιά και κατακερματισμό υπογραφής κατά τη δημιουργία της εγγραφής της εφαρμογής.

Μετά τη δημιουργία του κλειδιού, χρησιμοποιείται η εντολή exportcert στο εργαλείο κλειδιών για εξαγωγή του πιστοποιητικού της κλειδοθήκης.

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

Παράμετροι:

  • exportcert – διαβάζει από την κλειδοθήκη το πιστοποιητικό που σχετίζεται με το ψευδώνυμο και το αποθηκεύει στο αρχείο cert_file. Όταν δεν καθορίζεται αρχείο, το πιστοποιητικό ορίζεται ως stdout.
  • alias – το ψευδώνυμο που χρησιμοποιήθηκε κατά τη δημιουργία κλειδιών νωρίτερα.
  • keystore – το όνομα της κλειδοθήκης που χρησιμοποιείτε.
  • openssl – δημιουργεί το κλειδί SHA1 για Android.

Προσθέστε τον κατακερματισμό υπογραφής που δημιουργήθηκε στο URI ανακατεύθυνσης κατά την εγγραφή της εφαρμογής.

Μετατροπή δεκαεξαδικού SHA1 σε κατακερματισμό υπογραφών με κωδικοποίηση Base64 με μη αυτόματο τρόπο

Ενδέχεται να δείτε το παρακάτω σφάλμα σε περίπτωση που ο κατακερματισμός της υπογραφής σας δεν έχει κωδικοποιηθεί σωστά ή δεν είναι αποδεκτός στην πύλη Azure:

"Ο κατακερματισμός υπογραφής πρέπει να είναι SHA1 με κωδικοποίηση BASE64."

Όταν εμφανιστεί αυτό το σφάλμα, προσπαθήστε να δημιουργήσετε τον κατακερματισμό της υπογραφής ακολουθώντας τα παρακάτω βήματα:

  1. Εκτελέστε keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE για να παραθέσετε τις πληροφορίες πιστοποιητικού σε λεπτομερή λειτουργία.
  2. Αντιγράψτε την τιμή SHA1 στην ενότητα Δακτυλικά αποτυπώματα πιστοποιητικού από την έξοδο. Βεβαιωθείτε ότι αντιγράφετε μόνο την δεκαεξαδική τιμή.
    Για παράδειγμα: EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
  3. Χρησιμοποιήστε οποιοδήποτε πρόγραμμα μετατροπής "Δεκαεξαδικού σε Base64" για να μετατρέψετε την δεκαεξαδική τιμή πιστοποιητικού που έχει αντιγραφεί σε τιμή με κωδικοποίηση Base64.
    Παράδειγμα τιμής με κωδικοποίηση Base64: 8CPPeLaz9etdqQyaQubcqsy2Tw=
  4. Αντιγράψτε την τιμή με κωδικοποίηση Base64 που δημιουργείται ως Κατακερματισμό υπογραφής στην πύλη Azure κατά την εγγραφή της εφαρμογής.

Υπογραφή του πακέτου APK

Για να υπογράψουμε το πακέτο APK, θα χρησιμοποιήσουμε το εργαλείο apksigner. Αυτό το εργαλείο apksigner σάς επιτρέπει να υπογράφετε APK και να βεβαιώνεστε ότι η υπογραφή του πακέτου APK επαληθεύεται με επιτυχία σε όλες τις πλατφόρμες Android που υποστηρίζονται από APK.

Εύρεση του apksigner

  1. Ελέγξτε τη διαδρομή SDK Android στο Android Studio.

  2. Επιλέξτε Εργαλείο > SDK Manager > Android SDK Location.

    Εάν χρησιμοποιείτε iOS, ελέγξτε το αρχείο apksigner από τον κατάλογο buildTools Version:

    Μεταβείτε στον κατάλογο SDK > build-tools > buildToolsVersion > lib και ελέγξτε το αρχείο apksigner.jar.

Χρήση του αρχείου apksigner

Εκτελέστε την παρακάτω εντολή για να χρησιμοποιήσετε το apksigner και να υπογράψετε το πακέτο:

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

Παράμετροι:

  • ks – διαδρομή προς την κλειδοθήκη.
  • ks-key-alias – διαδρομή ψευδωνύμου κλειδιού για το αρχείο APK.

Όταν σας ζητηθεί, εισαγάγετε τον κωδικό πρόσβασης.

Περισσότερες πληροφορίες: εργαλεία εργαλεία γραμμής εντολών Android Studio: apksigner

Διανομή εφαρμογής

Μπορείτε να φιλοξενήσετε το πακέτο σε μια υπηρεσία διανομής, όπως το Κέντρο εφαρμογών. Για να διανείμετε τη χρήση του Microsoft Intune, ανατρέξτε στο θέμα Προσθήκη επιχειρηματικής εφαρμογής στο Microsoft Intune σε Android. Για να μάθετε πώς να δίνετε σε μια εφαρμογή πρόσβαση στην υπηρεσία προστασίας εφαρμογών Intune, ανατρέξτε στο θέμα Παροχή πρόσβασης στην εφαρμογή σας στην υπηρεσία προστασίας της εφαρμογής Intune.

Δείτε επίσης