160 votes

Comment activer la signature d'application Google Play

Je pense que beaucoup de développeurs essaient d'en apprendre davantage sur la nouvelle fonction de signature d'application de Google Play présentée lors de la conférence Google I/O 2017.

La possibilité de stocker le keystore pour signer les applications à l'intérieur de Google Play vous épargne l'effort de stocker le keystore en toute sécurité et peut aider le système à optimiser les APK servis à chaque appareil, en fonction des caractéristiques matérielles et du système d'exploitation.

Vous pouvez en savoir plus sur ce sujet dans la documentation officielle ici : https://developer.android.com/studio/publish/app-signing.html#google-play-app-signing.

Avec la réponse suivante, j'expliquerai un peu mieux les étapes que vous devez suivre pour télécharger votre keystore d'origine et comment créer le nouveau keystore de téléchargement, dont vous aurez besoin pour signer votre APK à partir de ce point.

242voto

MatPag Points 12624

_Avant de poursuivre, regardez cette vidéo des développeurs Android pour comprendre les implications de votre choix d'inscription à l'App Signing : https://youtu.be/odv_1fxt9BI_

Ce guide est destiné aux développeurs qui ont déjà une application dans le Play Store. Si vous commencez avec une nouvelle application, le processus est beaucoup plus facile et vous pouvez suivre les directives du paragraphe "Nouvelles applications" de l'article 1.1. ici

Des conditions préalables que 99 % des développeurs possèdent déjà :

  1. Android Studio

  2. JDK 8 et après l'installation, vous devez configurer une variable d'environnement dans votre espace utilisateur pour simplifier les commandes du terminal. Sous Windows x64, vous devez ajouter cette variable : C:\Program Files\Java\{JDK_VERSION}\bin à la Path variable d'environnement. (Si vous ne savez pas comment faire, vous pouvez lire mon guide de ajouter un dossier à la liste de Windows 10 Path variable d'environnement ).

Étape 0 : Ouvrez la console de développement Google Play, puis allez dans Gestion des versions -> Signature de l'application .

enter image description here

Acceptez les CGU de l'App Signing.

enter image description here

Étape 1 : Télécharger l'outil PEPK en cliquant sur le bouton identique à l'image ci-dessous

enter image description here

Étape 2 : Ouvrez un terminal et tapez :

java -jar PATH_TO_PEPK --keystore=PATH_TO_KEYSTORE --alias=ALIAS_YOU_USE_TO_SIGN_APK --output=PATH_TO_OUTPUT_FILE --encryptionkey=GOOGLE_ENCRYPTION_KEY

Légende :

  • PATH_TO_PEPK \= Chemin vers le fichier pepk.jar que vous avez téléchargé en Étape 1 pourrait être quelque chose comme C:\Users\YourName\Downloads\pepk.jar pour les utilisateurs de Windows.
  • CHEMIN_VERS_KEYSTORE \= Chemin d'accès au keystore que vous utilisez pour signer votre release APK. Il peut s'agir d'un fichier de type *.keystore ou *.jks ou sans extension. Quelque chose comme C:\Android\mykeystore ou C:\Android\mykeystore.keystore etc...
  • ALIAS_VOUS_DE_SIGNATURE_APK \= Le nom de l'alias que vous utilisez pour signer le release APK.
  • CHEMIN_VERS_LE_FICHIER_DE_SORTIE \= Le chemin du fichier de sortie avec l'extension .pem, quelque chose comme C:\Android\private_key.pem
  • CLÉ DE CRYPTAGE GOOGLE \= Cette clé de cryptage doit être toujours la même. Vous pouvez la trouver dans la page de signature de l'application, copiez-la et collez-la. Elle doit être sous cette forme : eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

Exemple :

java -jar " C:\Users\YourName\Downloads\pepk.jar " --keystore=" C:\Android\mykeystore " --alias=myalias --output=" C:\Android\private_key.pem " --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

Appuyez sur Enter et vous devrez fournir dans l'ordre :

  1. Le mot de passe du keystore
  2. Le mot de passe de l'alias

Si tout s'est bien passé, vous aurez maintenant un fichier dans le dossier PATH_TO_OUTPUT_FILE appelé private_key.pem .

Étape 3 : Téléchargez le fichier private_key.pem en cliquant sur le bouton identique à l'image ci-dessous

enter image description here

Étape 4 : Créez un nouveau fichier keystore en utilisant Android Studio.

VOUS AUREZ BESOIN DE CE KEYSTORE DANS LE FUTUR POUR SIGNER LES PROCHAINES VERSIONS DE VOTRE APPLICATION, N'OUBLIEZ PAS LES MOTS DE PASSE

Ouvrez l'un de vos projets Android (choisissez-en un au hasard). Allez à Construire -> Générer un APK signé et appuyez sur Créer un nouveau .

enter image description here

Maintenant, vous devez remplir les champs obligatoires.

Key store path représente le nouveau keystore que vous allez créer, choisissez un dossier et un nom en utilisant l'icône à 3 points sur la droite, j'ai choisi C:\Android\upload_key.jks ( l'extension .jks sera ajoutée automatiquement)

NOTE : J'ai utilisé upload comme nouveau nom d'alias, mais si vous avez précédemment utilisé le même keystore avec différents alias pour signer différentes applications, vous devez choisir le même nom d'alias que vous aviez précédemment dans le keystore original.

enter image description here

Appuyez sur OK lorsque vous avez terminé, et vous aurez maintenant une nouvelle upload_key.jks keystore. Vous pouvez maintenant fermer Android Studio.

Étape 5 : Nous avons besoin d'extraire le certificat de téléchargement à partir de la nouvelle base de données upload_key.jks keystore. Ouvrez un terminal et tapez :

keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS -file PATH_TO_OUTPUT_FILE

Légende :

  • CHEMIN_KEYSTORE_TÉLÉCHARGEMENT \= Le chemin du keystore de téléchargement que vous venez de créer. Dans ce cas, c'est C:\Android\upload_key.jks .
  • ALIAS DE L'UPLOAD_KEYSTORE \= Le nouvel alias associé au keystore de l'upload. Dans ce cas, il s'agit de upload .
  • CHEMIN_VERS_LE_FICHIER_DE_SORTIE \= Le chemin d'accès au fichier de sortie avec l'extension .pem. Quelque chose comme C:\Android\upload_key_public_certificate.pem .

Exemple :

keytool -export -rfc -keystore " C:\Android\upload_key.jks "-alias upload -file " C:\Android\upload_key_public_certificate.pem "

Appuyez sur Entrée et vous devrez fournir le mot de passe du keystore.

Maintenant, si tout s'est bien passé, vous aurez un fichier dans le dossier PATH_TO_OUTPUT_FILE appelé upload_key_public_certificate.pem .

Étape 6 : Télécharger le upload_key_public_certificate.pem fichier en cliquant sur le bouton identique à l'image ci-dessous

enter image description here

Étape 7 : Cliquez sur S'INSCRIRE à la fin de la page de signature de l'application.

enter image description here

Maintenant, chaque nouvelle version APK doit être signée avec le upload_key.jks et les alias créés dans Étape 4 avant d'être téléchargé dans la console Google Play Developer.

Plus de ressources :

QUESTIONS ET RÉPONSES

Q : Lorsque je télécharge l'APK signé avec le nouveau keystore upload_key, Google Play affiche une erreur du type : Vous avez téléchargé un APK non signé. Vous devez créer un APK signé .

R : Vérifiez que vous signez l'APK avec les deux signatures (V1 et V2) lorsque vous créez l'APK de sortie. Lire ici pour plus de détails.

MISE À JOUR

Les étapes 4, 5 et 6 consistent à créer une clé de téléchargement qui est facultative pour les applications existantes.

" Upload key " (facultatif pour les applications existantes) : Une nouvelle clé que vous générez lors de votre inscription au programme. Vous utiliserez la clé de téléchargement pour signer tous les futurs APK avant de les télécharger sur la Play Console." https://support.google.com/googleplay/Android-developer/answer/7384423

4 votes

Votre guide est super utile! Ils devraient le mettre sur le site officiel lol Les chemins d'accès pour vos exemples manquent de guillemets " _ " ce qui provoquera une erreur sur la console W10

3 votes

Les guillemets sont nécessaires uniquement si vous avez au moins un espace dans vos chemins, mais c'est ainsi que fonctionne chaque commande console. Donc vous devez utiliser les guillemets si votre chemin est : "C:\Mon chemin\MonNom" mais pas si le chemin est C:\MonChemin\MonNom. Au fait merci :)

0 votes

Enfin, cela a fonctionné mais vous devriez créer un nouveau jsk (vous ne pouvez pas utiliser l'ancien) sinon Google Play refusera le déploiement. Merci beaucoup.

49voto

Marius Tanasoiu Points 151

Il existe une solution beaucoup plus simple qui prendra une minute.

  1. Dans la console Google Play, sélectionnez Gestion des versions -> Signature de l'application
  2. Choisissez la première option, celle avec Générer une clé privée chiffrée avec Android Studio (ou quelque chose comme ça; je ne peux plus revenir voir cette page)
  3. Dans Android Studio, générez votre bundle d'application Android (.fichier aab) à partir de Build -> Générer une signature de bundle / APK..., choisissez l'option Bundle d'application Android et n'oubliez pas de cocher l'option Exportez la clé chiffrée (nécessaire pour inscrire votre application à la signature de l'application Google Play). Si vous n'avez pas de keystore généré, en générer un ad-hoc.
  4. Maintenant, la partie "tricky". Après la génération du .aab, Android Studio affichera une notification dans le coin inférieur droit contenant un chemin vers l'emplacement où le fichier .aab est enregistré. Dans la même notification, si vous l'ouvrez, vous trouverez un autre lien vers l'emplacement où la clé privée a été enregistrée (appelée private_key.pepk). Si vous manquez cette notification, ne vous inquiétez pas, ouvrez simplement la fenêtre de Log d'événements en cliquant sur le bouton Log d'événements en bas à droite et vous trouverez les mêmes informations. Ouvrez cet emplacement. Pour moi, c'était C:\Users\votreUtilisateur\.android

enter image description here

  1. Revenez dans le navigateur et appuyez sur le bouton CLÉ PRIVÉE DE SIGNATURE DE L'APPLICATION, puis accédez à l'emplacement de la clé privée sur votre ordinateur.

Fait!

Maintenant, vous pouvez téléverser la version que vous avez générée plus tôt :) Bonne chance!

2 votes

C'est la meilleure et la réponse la plus simple

0 votes

Il m'a fait gagner tellement de temps et, plus important encore, de tranquillité d'esprit.

0 votes

Je ne trouve pas cette option Export Encrypted key (nécessaire pour inscrire votre application à Google Play App signing).

7voto

itfake Points 74

J'ai dû faire ce qui suit :

  1. Créer une application dans la console Google Play entrez ici une description de l'image

2. Aller à Diffusion des applications -> Gérer la production -> Créer une diffusion

3. Cliquer sur continuer sur Google Play App Signing entrez ici une description de l'image

4. Créer un certificat de chargement en exécutant "keytool -genkey -v -keystore c:\chemin\vers\cert.keystore -alias uploadKey -keyalg RSA -keysize 2048 -validity 10000"

5. Signer votre apk avec le certificat généré (c:\chemin\vers\cert.keystore)

6. Mettre en ligne l'apk signé dans Diffusion des applications -> Gérer la production -> Modifier la diffusion

7. En ajoutant l'apk, le certificat généré à l'étape 4 a été ajouté aux Certificats de signature d'application et est devenu votre certificat de signature pour toutes les futures versions.

1 votes

J'ai fait exactement cela mais la connexion Google depuis mon application ne fonctionne pas si j'installe l'application via le Google Play Store. *Mais* si je télécharge le fichier apk depuis la page de gestion des versions et que je l'installe manuellement dans mon émulateur / appareil, cela fonctionne. Avez-vous une idée de ce que je rate ?

5voto

mtrakal Points 376

Lorsque vous utilisez Fabric pour les versions bêta publiques (signées avec la configuration prod), NE PAS UTILISER la signature d'application Google Play. Vous devrez alors construire deux APK signés après.

Lorsque vous distribuez à plusieurs magasins d'applications (samsung, amazon, xiaomi, ...), vous devrez à nouveau construire deux APK signés.

Alors soyez vraiment prudent avec la signature d'application Google Play.

Il n'est pas possible de revenir en arrière :/ et Google Play n'accepte pas les APK signés avec la clé de production par la suite. Après avoir activé la signature d'application Google Play, seule la clé d'envoi est acceptée...

Cela complique vraiment la distribution CI...

Prochains problèmes avec la mise à jour : https://issuetracker.google.com/issues/69285256

1 votes

En gras majuscule N'UTILISEZ PAS le type de commentaires est dangereux. Pouvez-vous expliquer le problème et la solution recommandée en détail? N'y a-t-il vraiment aucune solution? Est-il si difficile de signer deux fois un APK pour Fabric?

1 votes

Il n'est pas si difficile de signer l'APK deux fois, mais comme je l'ai décrit, vous devez créer deux (ou plus) APK qui ne sont pas identiques (donc vous testez sur Fabric Beta un fichier différent de celui qui sera publié sur le Play Store). Il perd le point de tester la construction de production sur des testeurs bêta... vous testez un autre fichier :). C'est juste un avertissement pour les personnes qui ont un CI/CD complexe qu'elles doivent le changer...

4 votes

Notez que Google Play accepte désormais les APK signés avec la clé de production même après avoir été inscrit à la signature d'application.

2voto

Sterling Diaz Points 316

Faites ce qui suit :

"CRÉER UNE APPLICATION" ayant le même nom que celui que vous souhaitez télécharger auparavant.
Cliquez sur créer.
Après la création de l'application, cliquez maintenant sur "Versions de l'application"
Cliquez sur "GERER LA PRODUCTION"
Cliquez sur "CRÉER UNE VERSION"
Vous verrez alors une boîte de dialogue "Signature d'application Google Play".
Cliquez simplement sur le bouton "DÉSACCORD".
Il vous sera demandé de confirmer. Cliquez simplement sur le bouton "Confirmer"

0 votes

Après cela, pourrai-je tester les achats in-app et les services de jeu comme avant ? Avez-vous une expérience à ce sujet ? Car je n'aime pas non plus faire des étapes complexes.

1 votes

Pas vraiment une réponse appropriée pour "Comment activer la signature d'application Google Play" ...

2 votes

Et que suggérez-vous comme moyen approprié de le faire ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X