J'avais téléchargé mon application sur Google Play (à l'époque où elle s'appelait Android Market) il y a quelque temps.
Aujourd'hui, j'ai mis à jour l'application, mais j'avais supprimé le magasin de clés précédent et créé un nouveau.
Lors du téléchargement, il indique que l'APK doit être signé avec les mêmes certificats que la version précédente:
Échec du téléchargement
Vous avez importé un fichier APK signé avec un certificat différent dans vos fichiers APK précédents. Vous devez utiliser le même certificat.
Vos fichiers APK existants sont signés avec le (s) certificat (s) avec empreinte (s):
[SHA1: 89: 2F: 11: FE: CE: D6: CC: DF: 65: E7: 76: 3E: DD: A7: 96: 4F: 84: DD: BA: 33]
et le ou les certificats utilisés pour signer l'APK que vous avez téléchargé ont des empreintes digitales:
[SHA1: 20: 26: F4: C1: DF: 0F: 2B: D9: 46: 03: FF: AB: 07: B1: 28: 7B: 9C: 75: 44: CC]
Mais je n'ai pas ce certificat et je ne veux pas supprimer et republier l'application, car elle a des utilisateurs actifs.
Que puis-je faire pour signer mon application avec un nouveau certificat?
la source
Réponses:
Rien. Lisez la documentation: Publication des mises à jour sur Android Market
la source
Avez-vous signé par erreur la clé de débogage?
Google Play ne vous permet pas de publier une application signée avec votre magasin de clés de débogage. Si vous essayez de télécharger un tel fichier APK, Google Play échouera avec le message "Vous avez téléchargé un fichier APK signé en mode débogage. Vous devez signer votre fichier APK en mode de publication."
Toutefois, si vous essayez de télécharger une mise à jour signée avec le magasin de clés de débogage, vous ne verrez pas ce message; Google Play affichera le message affiché dans la question, faisant référence aux empreintes digitales SHA1.
Vérifiez d'abord si vous avez signé l'application avec votre clé de débogage par erreur.
Comment vérifier quelles clés de signature ont été utilisées?
Rassemblez les informations de l'APK
Vous pouvez vérifier avec quels certificats l'APK d'origine et l'APK de mise à jour ont été signés à l'aide de ces commandes, à l'aide de Java
keytool
:Cela vous montre des informations détaillées sur la façon dont un APK a été signé, par exemple:
Les parties importantes à noter ici - pour chaque APK - sont la valeur d'empreinte digitale SHA1 , la valeur d'identité du propriétaire et les dates de validité du / au .
Si cette
keytool
commande ne fonctionne pas (l'-jarfile
option nécessite Java 7), vous pouvez obtenir des informations plus basiques via lajarsigner
commande:Cela ne montre malheureusement pas l'empreinte SHA1, mais montre l'identité du propriétaire X.509, ainsi que les dates d'expiration du certificat. Par exemple:
Vous pouvez ignorer tout message "CertPath non validé", ainsi que les avertissements sur les chaînes de certificats ou les horodatages; ils ne sont pas pertinents dans ce cas.
Comparez les valeurs Owner, SHA1 et Expiration entre les fichiers APK
Si la valeur d'identité Owner / X.509 est
CN=Android Debug, O=Android, C=US
, alors vous avez signé l'APK avec votre clé de débogage , pas la clé de version d'origineSi la valeur d'empreinte digitale SHA1 est différente entre les fichiers APK d'origine et de mise à jour, vous n'avez pas utilisé la même clé de signature pour les deux fichiers APK
Si les valeurs d'identité du propriétaire / X.509 sont différentes ou si les dates d'expiration des certificats diffèrent entre les deux fichiers APK, vous n'avez pas utilisé la même clé de signature pour les deux fichiers APK.
Notez que même si les valeurs Owner / X.509 sont identiques entre les deux certificats, cela ne signifie pas que les certificats sont identiques - si rien d'autre ne correspond - comme les valeurs d'empreintes digitales - alors les certificats sont différents.
Recherchez le fichier de clés d'origine, vérifiez les sauvegardes
Si les deux fichiers APK ont des informations de certificat différentes, vous devez trouver le fichier de clés d'origine, c'est-à-dire le fichier avec la première valeur d'empreinte digitale SHA1 que Google Play (ou
keytool
) vous a indiqué.Recherchez tous les fichiers de clés que vous pouvez trouver sur votre ordinateur et dans toutes les sauvegardes que vous avez, jusqu'à ce que vous ayez celui avec l'empreinte SHA1 correcte:
Appuyez simplement sur Entersi vous êtes invité à entrer le mot de passe - vous n'avez pas nécessairement à le saisir si vous voulez simplement vérifier rapidement la valeur SHA1.
Je ne trouve le magasin de clés d'origine nulle part
Si vous ne trouvez pas le magasin de clés d'origine, vous ne pourrez jamais publier de mises à jour de cette application particulière.
Android le mentionne explicitement sur la page Signing Your Application :
Après la première version d'un fichier APK, toutes les versions suivantes doivent être signées avec exactement la même clé.
Puis-je extraire la clé de signature d'origine de l'APK d'origine?
Non, ce n'est pas possible. L'APK ne contient que des informations publiques et non vos informations de clé privée.
Puis-je migrer vers une nouvelle clé de signature?
Non. Même si vous trouvez l'original, vous ne pouvez pas signer un APK avec la clé A, puis signer la prochaine mise à jour avec les deux clés A et B, puis signer la prochaine mise à jour après cela avec uniquement la clé B.
La signature d'un APK (ou de tout fichier JAR) avec plusieurs clés est techniquement possible, mais Google Play n'accepte plus les APK avec plusieurs signatures.
Si vous tentez de le faire, le message "Votre APK a été signé avec plusieurs certificats. Veuillez le signer avec un seul certificat et le télécharger à nouveau."
Que puis-je faire?
Vous devrez créer votre application avec un nouvel ID d'application (par exemple, passer de "com.example.myapp" à "com.example.myapp2") et créer une toute nouvelle liste sur Google Play.
Vous devrez peut-être également modifier votre code afin que les gens puissent installer la nouvelle application même si l'ancienne application est installée, par exemple, vous devez vous assurer que vous n'avez pas de fournisseurs de contenu en conflit.
Vous perdrez votre base d'installation existante, vos avis, etc., et devrez trouver un moyen d'amener vos clients existants à désinstaller l'ancienne application et à installer la nouvelle version.
Encore une fois, assurez-vous que vous disposez de sauvegardes sécurisées du fichier de clés et du ou des mots de passe que vous utilisez pour cette version.
la source
[CertPath not validated: Path does not chain with any of the trust anchors]
pas un problème de cuir? Je vois mon nom àCN
donc je suppose que je l'ai correctement signé :)Rien - Google indique clairement que l'application est identifiée par les clés utilisées pour la signer. Par conséquent, si vous avez perdu les clés, vous devez créer une nouvelle application.
la source
Aujourd'hui, j'ai rencontré le même problème, malheureusement, j'avais deux alias dans mon fichier de clés.
la source
Je viens de faire que cela se produise du bleu clair. Je ne pense vraiment pas avoir changé quoi que ce soit.
Cependant,
Build => Clean Project
il l'a corrigé.la source
Ici, je reçois la réponse à cette question. Après avoir cherché trop longtemps enfin, j'arrive à casser la clé et le mot de passe pour cela. J'oublie ma clé et mon alias aussi le fichier jks mais heureusement je connais le tas de mot de passe que j'ai mis dedans. mais trouver les bonnes combinaisons pour cela était la tâche la plus difficile pour moi.
Solution - Télécharger ceci - Plugin Keytool IUI version 2.4.1
la fenêtre apparaîtra maintenant, elle montrera le nom de l'alias ..si votre fichier jks est correct .. faites un clic droit sur l'alias et appuyez sur "voir la chaîne des certificats" .. elle montrera la clé SHA1 .. faites correspondre cette clé avec la clé que vous obtenez pendant que vous téléchargiez l'apk dans google app store ...
si cela correspond alors vous êtes avec le bon fichier jks et alias ..
maintenant j'ai de la chance d'avoir un tas de mot de passe pour correspondre ..
maintenant allez à ce scrren mettez le même chemin jks .. et mot de passe (parmi le mot de passe que vous avez) mettez n'importe quel chemin dans "Fichier de certificat"
si l'écran affiche une erreur, le mot de passe ne correspond pas .. s'il ne montre aucune erreur, cela signifie que vous êtes avec le bon fichier jks. corriger l'alias et le mot de passe () maintenant avec cela, vous pouvez télécharger votre apk dans le Play Store :)
la source
Si vous avez un fichier apk précédent avec vous (sauvegarde), utilisez jarSigner pour extraire le certificat de cette apk, puis utilisez cette clé ou utilisez keytool pour cloner ce certificat, cela peut vous aider ... Les liens utiles sont les documents jarsigner et les documents keytool .
la source
Je recommande fortement Keystore Explorer ( https://keystore-explorer.org/ ) qui vous permet d'accéder à votre keystore sans avoir à le télécharger sur Google Play. De cette façon, vous pouvez résoudre le problème de saisie incorrecte de votre mot de passe.
la source
Vous pouvez utiliser la nouvelle fonctionnalité de signature d'application Google Play pour générer un nouveau fichier clé.
Après mai 2017, Google Play Store ajoute une nouvelle fonctionnalité sur Play Store et c'est une bonne nouvelle pour les développeurs Android. À partir de cette fonctionnalité, le développeur peut mettre à jour son application ou Apk qui a perdu un fichier KeyStore. vous devez activer la signature de l'application google play sur la console Play Store.
https://support.google.com/googleplay/android-developer/answer/7384423?hl=en
http://www.geekcodehub.com/2018/05/23/keystore-lost-in-android/
la source
J'avais rencontré ce problème récemment, après avoir essayé différentes façons de se connecter, comme activer V1 ou V2, connecté en changeant le nom d'alias et j'ai appris pour la dernière fois que j'utilisais un fichier de stockage de clés incorrect
la source
Mon erreur [idiote] était que j'ai utilisé le fichier app-debug.apk au lieu du fichier app-release.apk. Vous devez choisir "release" dans le cadre "Build Variants" lorsque vous générez un fichier APK signé. Le fichier app-release.apk doit se trouver dans le dossier "app \ release" à la racine de votre projet.
la source