Comment activer la signature d'applications Google Play

113

Je pense que de nombreux développeurs essaient d'en savoir plus sur la nouvelle fonctionnalité de signature d'applications Google Play présentée à Google I / O 2017.

La possibilité de stocker le fichier de clés pour signer les applications dans Google Play vous évite de devoir stocker en toute sécurité le fichier de clés et peut aider le système à optimiser les APK servis à chaque appareil, en fonction des caractéristiques du matériel 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, je vais vous expliquer un peu mieux les étapes à 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 moment.

MatPag
la source

Réponses:

189

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 simple et vous pouvez suivre les instructions du paragraphe "Nouvelles applications" à partir d' ici

Prérequis que 99% des développeurs possèdent déjà :

  1. Studio Android

  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 ceci: C:\Program Files\Java\{JDK_VERSION}\binà la Pathvariable d'environnement. (Si vous ne savez pas comment faire cela, vous pouvez lire mon guide pour ajouter un dossier à la Pathvariable d'environnement Windows 10 ).

Étape 0 : Ouvrez la console développeur de Google Play, puis accédez à Gestion des versions -> Signature d'application .

entrez la description de l'image ici

Acceptez les conditions de signature d'application.

entrez la description de l'image ici

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

entrez la description de l'image ici

É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 = Le chemin vers le pepk.jar que vous avez téléchargé à l' étape 1 , pourrait être quelque chose comme C:\Users\YourName\Downloads\pepk.jarpour les utilisateurs Windows.
  • PATH_TO_KEYSTORE = Chemin vers le keystore que vous utilisez pour signer votre version APK. Il peut s'agir d'un fichier de type * .keystore ou * .jks ou sans extension. Quelque chose comme C:\Android\mykeystoreou C:\Android\mykeystore.keystoreetc ...
  • ALIAS_YOU_USE_TO_SIGN_APK = Le nom de l'alias que vous utilisez pour signer l'APK de la version.
  • PATH_TO_OUTPUT_FILE = Le chemin du fichier de sortie avec l'extension .pem, quelque chose commeC:\Android\private_key.pem
  • GOOGLE_ENCRYPTION_KEY = Cette clé de chiffrement doit être toujours la même. Vous pouvez le trouver sur la page Signature d'application, le copier et le coller. Devrait ê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 = eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b92761fb833b656cd48b9

Appuyez sur Entrée et vous devrez fournir dans l'ordre:

  1. Le mot de passe du keystore
  2. Le mot de passe 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

entrez la description de l'image ici

Étape 4 : Créez un nouveau fichier de clés à l'aide d'Android Studio.

VOUS AUREZ BESOIN DE CE KEYSTORE À L'AVENIR POUR SIGNER LES PROCHAINES VERSIONS DE VOTRE APP, N'OUBLIEZ PAS LES MOTS DE PASSE

Ouvrez l'un de vos projets Android (choisissez-en un au hasard). Allez dans Build -> Generate Signed APK et appuyez sur Create new .

entrez la description de l'image ici

Maintenant, vous devez remplir les champs obligatoires.

Le chemin du magasin de clés représente le nouveau keystore que vous allez créer, choisissez un dossier et un nom à l'aide de l'icône à 3 points à droite, j'ai C:\Android\upload_key.jkschoisi (l'extension .jks sera ajoutée automatiquement)

REMARQUE: j'ai utilisé uploadcomme nouveau nom d'alias, mais si vous avez précédemment utilisé le même magasin de clés 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 magasin de clés d'origine.

entrez la description de l'image ici

Appuyez sur OK lorsque vous avez terminé, et vous aurez maintenant un nouveau upload_key.jksfichier de clés. Vous pouvez fermer Android Studio maintenant.

Étape 5 : Nous devons extraire le certificat de téléchargement du upload_key.jkskeystore nouvellement créé . Ouvrez un terminal et tapez:

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

Légende:

  • UPLOAD_KEYSTORE_PATH = Le chemin du keystore de téléchargement que vous venez de créer. Dans ce cas était C:\Android\upload_key.jks.
  • UPLOAD_KEYSTORE_ALIAS = Le nouvel alias associé au fichier de clés de téléchargement. Dans ce cas était upload.
  • PATH_TO_OUTPUT_FILE = Le chemin vers le 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 fichier de clés.

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échargez le upload_key_public_certificate.pemfichier en cliquant sur le bouton identique à l'image ci-dessous

entrez la description de l'image ici

Étape 7 : Cliquez sur le bouton INSCRIPTION à la fin de la page de signature d'application.

entrez la description de l'image ici

Désormais, chaque nouvelle version d'APK doit être signée avec le fichier de upload_key.jksclés et les alias créés à l' étape 4 , avant d'être téléchargés dans la console développeur de Google Play.

Plus de ressources:

Questions et réponses

Q: Lorsque je télécharge l'APK signé avec le nouveau fichier de clés 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: Cochez pour signer l'APK avec les deux signatures (V1 et V2) lors de la création de l'APK de la version. Lisez ici pour plus de détails.

ACTUALISÉ

L'étape 4,5,6 consiste à créer une clé de téléchargement qui est facultative pour les applications existantes

"Clé de téléversement (facultatif pour les applications existantes): nouvelle clé que vous générez lors de votre inscription au programme. Vous utiliserez la clé de téléversement pour signer tous les futurs APK avant de les téléverser dans la console Play." https://support.google.com/googleplay/android-developer/answer/7384423

MatPag
la source
3
Votre procédure pas à pas est super utile! Ils devraient le mettre sur le site officiel lol Les noms de fichiers pour vos exemples manquent « _ » citations qui jetteront une erreur sur la console W10
NukeouT
3
Les guillemets ne sont nécessaires que si vous avez au moins un espace dans vos chemins, mais c'est ainsi que chaque commande de console fonctionne. Vous devez donc utiliser les guillemets si votre chemin est: "C:\My Path\MyName"mais pas si le chemin est C:\MyPath\MyName. Btw merci :)
MatPag
1
@layth La création du nouveau keystore est celle Step 4du guide: D
MatPag
1
Je l'ai fait mais quand j'ai eu votre nouvelle boîte de dialogue de keystore, son chemin de keystore et ses champs de mot de passe étaient vides, alors je les ai pointés vers l'ancien keystore et j'ai entré son ancien mot de passe - btw actuellement bloqué sur "keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS - file PATH_TO_OUTPUT_FILE "continue de se plaindre qu'il ne sait pas ce que signifie keytool. J'ai essayé d'ajouter "C: \ Program Files \ Java \ jdk1.8.0_25 \ bin \ keytool.exe" mais cela n'a pas fonctionné, peut-être parce que je ne sais pas où le mettre exactement.
NukeouT
9
Il semble que Google ait changé la procédure, car je ne trouve plus l'outil PEPK.
Andrea Motto
31

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

  1. Dans la console Google Play, sélectionnez Gestion des versions -> Signature d'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 en arrière pour voir cette page)
  3. Dans Android Studio, générez votre bundle d'applications Android (fichier .aap) à partir de Build -> Generate Signed Bundle / APK ... , choisissez l' option Android App Bundle et n'oubliez pas de cocher Exporter la clé cryptée (nécessaire pour inscrire votre application Google Play App signature) . Si vous n'avez pas généré de fichier de clés, générez-en un ad hoc.
  4. Maintenant la partie "délicate". Une fois le .aap généré, Android Studio affichera une notification dans le coin inférieur droit contenant un chemin vers l'emplacement où le fichier .aap est enregistré. Dans la même notification, si vous la développez, vous trouverez un autre lien vers le chemin où la clé privée a été enregistrée (appelé private_key.pepk ). Si vous manquez cette notification, ne vous inquiétez pas, ouvrez simplement la fenêtre Journal des événements en cliquant sur le bouton Journal des événements en bas à droite et vous trouverez les mêmes informations. Ouvrez cet emplacement.Pour moi, c'était C: \ Users \ yourUser \ .android

entrez la description de l'image ici

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

Terminé!

Vous pouvez maintenant télécharger votre version que vous avez générée plus tôt :) Bonne chance!

Marius Tanasoiu
la source
1
C'est la meilleure et la plus simple réponse
Simon
M'a sauvé beaucoup de temps et surtout la tranquillité d'esprit
Meenohara
Je ne reçois pas cette option Exporter la clé cryptée (nécessaire pour inscrire votre application Signature d'application Google Play).
Jarvis
J'apprécierais vraiment une explication plus complète du point 5 - je ne vois pas ce bouton, où est-il, peut-être que la mise en page a changé sur les mises à jour récentes?
androidneil
ok bien maintenant je veux être curieux à ce sujet lors de la prochaine mise à jour que faire ?? comme si nous avons à nouveau besoin de la clé .pepk ou nous devons signer la version 2 en utilisant la même clé ou la nouvelle clé privée .pepk pls help
Sunil Chaudhary
15

Lors de la migration du fichier de package d'application Android (APK) vers Android App Bundle (AAB), la publication de l'application dans Play Store, j'ai rencontré ce problème et j'ai été résolu comme ceci ci-dessous ...

Lors de la création du .aabfichier, vous êtes invité à indiquer l'emplacement de stockage du chemin d'exportation de la clé comme ci-dessous:

entrez la description de l'image ici
entrez la description de l'image ici Dans la deuxième image, vous trouvez le chemin d'exportation de la clé cryptée Emplacement où notre .pepk sera stocké dans le dossier spécifique lors de la génération du fichier .aab.

Une fois que vous vous êtes connecté à la console Google Play avec les informations d'identification du Play Store: sélectionnez votre projet sur le côté gauche, choisissez l'option de signature d'application Gestion des versions >> Signature d'application entrez la description de l'image ici

vous trouverez la fenêtre de certification de signature d'applications Google ACCEPTER.

Après cela, vous trouverez trois boutons radio sélectionnez **

Télécharger une clé exportée depuis le bouton radio Android Studio

**, il élargira votre bouton de clé privée de signature d'application comme ci-dessous

entrez la description de l'image ici

cliquez sur le bouton et choisissez le .pepkfichier (Nous avons stocké lors de la génération du .aabfichier comme ci-dessus)

Lisez toutes les autres options et soumettez.

Une fois avec succès, vous pouvez revenir à la version de l'application et parcourir le fichier .aab et terminer RollOut ...

@Ambilpura

Ambilpura Sunil Kumar
la source
ok bien maintenant je veux être curieux à ce sujet lors de la prochaine mise à jour que faire ?? comme si nous avons à nouveau besoin de la clé .pepk ou nous devons signer la version 2 en utilisant la même clé ou la nouvelle clé privée .pepk pls help
Sunil Chaudhary
Selon ce que je comprends, pas besoin de créer pour la prochaine fois, vous pouvez utiliser l'ancienne clé .pepk ....
Ambilpura Sunil Kumar
Comment utilisez-vous le .pepk pour une mise à jour? J'ai utilisé avec succès la signature de l'application Google lors du téléchargement de mon application, mais j'essaie maintenant de pousser une mise à jour et je ne sais pas comment @AmbilpuraSunilKumar
nt95
Pareil ici. Je viens de télécharger l'abb sur le Play Store et ignore complètement le fichier .pepk. Ce serait bien de savoir exactement à quoi cela sert et quoi faire lors de la mise à jour de l'application.
Julian Eggers du
4

Je devais faire ce qui suit:

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

2.Accédez aux versions de l'application -> Gérer la production -> Créer une version

3.Cliquez sur Continuer sur la signature de l'application Google Play entrez la description de l'image ici

4.Créez un certificat de téléchargement en exécutant "keytool -genkey -v -keystore c: \ path \ to \ cert.keystore -alias uploadKey -keyalg RSA -keysize 2048 -validity 10000"

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

6. Télécharger un apk signé dans les versions de l'application -> Gérer la production -> Modifier la version

7.En téléchargeant 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.

c'est faux
la source
1
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 l'apk à partir de la page de gestion des versions et l'installe manuellement dans mon émulateur / appareil, cela fonctionne. Une idée de ce qui me manque?
Raghudevan Shankar
J'ai cherché partout pendant environ 3 heures et tu m'as finalement sauvé!
Oliver Dixon
3

Lorsque vous utilisez Fabric pour les versions bêta publiques (signées avec la configuration de production), N'UTILISEZ PAS la signature d'applications Google Play. Vous devrez après avoir construit deux apks signés!

Lorsque vous distribuez à plus de magasins de jeux (samsung, amazon, xiaomi, ...), vous devrez à nouveau créer deux apks signés.

Soyez donc très prudent avec la signature d'applications Google Play.

Il n'est pas possible de le rétablir: / et Google Play n'a pas accepté après avoir accepté les apks signés avec la clé de production. Après avoir activé la signature de l'application Google Play, seule la clé de téléchargement est acceptée ...

Cela complique vraiment la distribution CI ...

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

mtrakal
la source
1
DON'T USELes commentaires en gras et en majuscules sont dangereux. Pouvez-vous expliquer le problème et la solution recommandée en détail? N'y a-t-il pas du tout une solution? Est-il si difficile de signer deux fois un APK pour Fabric?
Gokhan Arik
1
Ce n'est pas si difficile de signer deux fois l'APK, mais comme je le décris, vous devez créer deux (ou plus) APK qui ne sont pas identiques (vous testez donc sur Fabric Beta un fichier différent de celui qui sera publié sur le Play Store). Cela perd le point de tester la production sur des bêta-testeurs ... vous testez un autre fichier :). C'est juste un avertissement pour les gens qui ont un CI / CD complexe qu'ils doivent le changer ...
mtrakal
2
Notez que Google Play accepte désormais les APK signés avec la clé de production même après l'inscription à la signature d'applications.
Pierre
2

Procédez comme suit:

"CREATE APPLICATION" having the same name which you want to upload before.
Click create.
After creation of the app now click on the "App releases"
Click on the "MANAGE PRODUCTION"
Click on the "CREATE RELEASE"
Here you see "Google Play App Signing" dialog.
Just click on the "OPT-OUT" button.
It will ask you to confirm it. Just click on the "confirm" button
Sterling Diaz
la source
Après cela, puis-je pouvoir tester l'achat d'applications et jouer aux services comme avant? Avez-vous eu une expérience à ce sujet? Parce que même moi, je n'aime pas faire de pas lourds.
Siddharth
1
Pas vraiment une réponse appropriée pour "Comment activer la signature d'applications Google Play" ...
Ben Madsen
2
Et que proposez-vous comme moyen approprié de le faire?
Sterling Diaz