Signature de code pour Android
Dans cet article, vous allez découvrir comment coder la signature pour Android (APK). Vous devrez signer votre application pour Android si vous avez sélectionné Android comme l’une des plates-formes lors de la création et de la création de votre projet d’inclusion dans un wrapper.
Important
Si vous souhaitez plutôt signer une application AAB pour la distribution Google Play, reportez-vous à Signer votre application.
Préparation de votre ordinateur
Vous devrez également fournir les informations suivantes pour commencer :
- Installer Android Studio
- Installer OpenSSL
Génération de clés
Notes
Passer à signer le package APK si vous avez déjà généré des clés et un hachage de signature lors de la création de l’enregistrement de l’application.
Nous utiliserons keytool.exe (disponible après l’installation de Android Studio, à partir de l’emplacement du dossier « Lecteur:\Program Files\Android\Android Studio\jre\bin\keytool.exe ») pour créer un certificat pour signer le package d’application. Keytool est utilisé pour gérer un magasin de clés (base de données) de clés cryptographiques, de chaînes de certificats X.509 et de certificats de confiance.
Pour générer une clé, ouvrez une invite de commande et exécutez la commande suivante :
keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000
Paramètres :
- genkey – commande pour générer une clé.
- alias : indique l’alias à utiliser à l’avenir pour faire référence à l’entrée du magasin de clés contenant les clés qui sont générées.
- keyalg – nom de l’algorithme de clé.
- keystore – nom du magasin de clés que vous utilisez.
- keysize – taille de chaque clé à générer.
- validity – validité de la clé en nombre de jours.
Exemple :
Si vous préparez Key Vault, PATH_TO_KEYSTORE devrait avoir l’extension .pfx.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
Si vous préparez une signature manuelle, PATH_TO_KEYSTORE doit avoir l’extension .jks.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000
Générer le hachage de signature
Notes
Passer à signer le package APK si vous avez déjà généré des clés et un hachage de signature lors de la création de l’enregistrement de l’application.
Après avoir généré la clé, nous utiliserons la commande exportcert dans keytool pour exporter le certificat du magasin de clés.
keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64
Paramètres :
- exportcert – lit depuis le magasin de clés le certificat associé à l’alias et le stocke dans le fichier cert_file. Lorsqu’aucun fichier n’est spécifié, le certificat est sorti sur stdout.
- alias – alias utilisé lors de la génération des clés précédemment.
- keystore – nom du magasin de clés que vous utilisez.
- openssl – génère la clé SHA1 pour Android.
Ajoutez le hachage de signature généré dans l’URI de redirection pendant l’enregistrement de l’application.
Convertir manuellement l’hexadécimal SHA1 en hachage de signature encodé en Base64
Vous pouvez voir l’erreur suivante si votre hachage de signature n’est pas correctement encodé ou inacceptable dans le portail Azure :
« Le hachage de signature doit être SHA1 encodé en base64. »
Lorsque cette erreur apparaît, essayez plutôt de générer le hachage de signature en procédant comme suit :
- Exécutez
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
pour répertorier les informations de certificat en mode détaillé. - Copiez la valeur SHA1 sous la section Empreintes de certificat à partir du résultat. Assurez-vous de ne copier que la valeur hexadécimale.
Par exemple :EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
- Utilisez n’importe quel convertisseur « Hexadécimal vers Base64 » disponible pour convertir la valeur hexadécimale de l’empreinte de certificat copiée en valeur codée en Base64.
Exemple de la valeur encodée Base64 :8CPPeLaz9etdqQyaQubcqsy2Tw=
- Copiez la valeur encodée en Base64 générée en tant que Hachage de signature dans le portail Azure pendant l’enregistrement de l’application.
Signature du package APK
Pour signer le package APK, nous utiliserons l’outil apksigner. Cet outil vous permet de signer des APK et de vous assurer que la signature du package APK sera vérifiée avec succès sur toutes les plates-formes Android prises en charge par les APK.
Rechercher votre apksigner
Vérifiez le chemin d’accès au SDK Android dans Android Studio.
Sélectionnez Outil > Gestionnaire de SDK > Emplacement du SDK Android.
Si vous utilisez iOS, vérifiez le fichier apksigner à partir du répertoire buildTools Version :
Accédez au répertoire SDK >build-tools > buildToolsVersion > lib et vérifiez le fichier apksigner.jar
Utiliser le fichier apksigner
Exécutez la commande suivante pour utiliser apksigner et signez le package :
apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK
Paramètres :
- ks – chemin d’accès au magasin de clés.
- ks-key-alias – chemin d’accès à l’alias de clé vers le fichier APK.
À l’invite, entrez le mot de passe.
Plus d’informations : Outils de ligne de commande Android Studio : apksigner
Distribuer l’application
Vous pouvez héberger le package sur un service de distribution tel que App Center. Pour distribuer à l’aide de Microsoft Intune, consultez Ajouter une application cœur de métier Android à Microsoft Intune. Pour en savoir plus sur l’octroi d’un accès à une application au service Intune App Protection, consultez Accordez à votre application l’accès au service Intune App Protection.