58
votes

AVERTISSEMENT: différents mots de passe de magasin et clés non pris en charge pour les clés PKCS12. Ignorer la valeur de KEYPASS spécifiée par l'utilisateur. dans Android Studio

J'essaie de créer un nouveau stage de clés pour générer un APK signé mais j'obtiens une erreur comme celle-ci, aidez-moi à me débarrasser de cette erreur.

 Entrez la description de l'image ici

 Entrez la description de l'image ici


0 commentaires

8 Réponses :


19
votes

Le mot de passe du magasin de clés et le mot de passe de clé doivent être les mêmes afin d'éviter cette erreur. Cependant, avant que je puisse publier et livrer des applications où le mot de passe du magasin clé et le mot de passe clé sont différents et je l'utilise toujours aujourd'hui lors de la mise à jour de mes applications. Si quelqu'un peut souligner ce qui s'est passé ici ou est-ce une partie de la mise à jour avant et après le nouveau Studio Android Arctic Fox, veuillez fournir une source.


1 commentaires

Cela est tellement bizarre. Dois-je attendre une solution ou simplement aller avec?



25
votes

Il s'agit d'un problème connu avec Android Studio 4.2 . Il fonctionne sur JDK11 qui a cette limitation.

google de google documentation sur la signature des applications indique que la clé Le mot de passe "doit être différent du mot de passe que vous avez choisi pour votre stade" donc je suppose qu'ils ont l'intention de résoudre ce problème à un moment donné.


2 commentaires

On dirait une limitation dans JDK keytool qu'ils ne corrigeront pas : bugs.openjdk.java.net/browse/jdk-8008292


Google a mis à jour leur documentation maintenant. Il indique actuellement "Créez et confirmez un mot de passe sécurisé pour votre clé. Cela devrait être le même que votre mot de passe de clés. (Veuillez vous référer au problème connu pour plus d'informations)". Le "numéro connu" est lié à Developer.android.com/studio /… , ce qui résume essentiellement le sujet de ce fil. Leur solution de contournement suggérée est: "Pour contourner ce problème, entrez le même mot de passe pour la clé et le stage de clés.".



1
votes

J'ai été très surpris lorsque je suis entré de la même manière avec Mot de passe clé et mot de passe et obtenu le bon résultat. et jks Fichier créé avec succès dans Android Studio 4.2 .


0 commentaires

1
votes

Ce problème s'est produit dans Android Studio 4.2. Il a la solution pour résoudre ce problème dans Android Studio 4.0.

Suivez les étapes.

Cliquez sur le menu d'aide dans Android Studio, cliquez sur Modifier les options VM personnalisées, cette réponse d'action pour ouvrir le fichier studio64.exe.vmoptions.

Dans ce fichier, ajoutez la ligne de commande ci-dessous:

Studio Android personnalisé # .vmoptions, voir https://developer.android .com / studio / intro / studio-config.html

ou Mettre à niveau la dernière version.

Remarque: Pour contourner ce problème, entrez le même mot de passe pour la clé et la clé.


0 commentaires

5
votes

J'ai été pris par cela après la mise à niveau vers Android Studio 4.2 aussi.

Une solution de contournement que j'ai trouvée est de créer d'abord le fichier de clés avec le même mot de passe dans Android Studio Commande KeyTool pour mettre à jour le mot de passe clé.

  • Trouvez et utilisez une ancienne version de Java (désolé suppose que Mac ou Linux mais définir java_home sur Windows devrait aussi fonctionner.)
    $ keytool -keypasswd -keystore PATH_TO_KEY_STORE -alias ALIAS -storepass STORE_PASSWORD -keypass OLD_KEY_PASSWORD -new NEW_KEY_PASSWORD
    
  • Exécutez keytool pour mettre à jour votre mot de passe clé.
    $ /usr/libexec/java_home -V
    $ export JAVA_HOME=$(/usr/libexec/java_home -v OLD_VERSION)
    

  • 2 commentaires

    J'ai obtenu l'erreur suivante: Erreur de KeyTool: java.lang.unsupportedOperationException: -KeyPasswd non pris en charge si -storeType est pkcs12


    @khashashin, je l'ai fait aussi au début, mais j'ai réalisé que j'utilisais toujours une version plus récente. Après avoir veillé à ce que j'utilisais une version plus ancienne de Keytool, cela a fonctionné sans erreur. J'ai utilisé JDK 1.8.0 (311) par exemple, et temporairement supprimé la configuration des variables d'environnement, redémarré l'invite de commande, accédé au dossier et préfixé comme ". \ Keytool.exe ..." afin que je puisse assurer que le bon keytool.exe a été utilisé .



    0
    votes

    From jdk version 9 Le format de clé par défaut est défini sur pkcs12 voir le lien . Pour créer une clé avec différents mots de clés et des mots de passe de clé Utilisez keytool (notez la balise -storeType JK chaîne qui commence par Changer _ dans l'exemple ci-dessous):

    keytool -genkey -v -alias CHANGE_KEY_ALIAS -keyalg RSA -keysize 2048 -validity 10000 -storetype JKS -dname "CN=CHANGE_FIRST_NAME_LAST_NAME,OU=IT,O=CHANGE_ORGANISATION_NAME,L=CHANGE_LOCATION_CITY_NAME,C=CHANGE_COUNTRY_CODE" -keystore CHANGE_KEYSTORE_NAME.keystore -keypass CHANGE_KEY_PASSWORD -storepass CHANGE_KEYSTORE_PASSWORD
    


    0 commentaires

    5
    votes

    Android Studio version 4.2 Mise à jour

    Android Studio fonctionne sur jdk 11 . En raison de ces modifications, le problème des clés de signature arrive.

    solution

    Utilisez le même mot de passe pour la clé et la clé .


    1 commentaires

    C'est une mauvaise solution, l'utilisation du même mot de passe n'est pas sécurisée



    1
    votes

    Toutes ces réponses donnent l'impression que c'est un bug dans le dernier studio Android ou keytool et tous fournissent des "solutions de contournement". Mais l'utilisation de PKCS12 avec le même mot de passe de clé / magasin est le comportement souhaité et correct. Voir le commentaire du Fixage de bogues lié

    La seule chose qui est incorrecte est le doc obsolète d'Android à utiliser des PW séparés.


    1 commentaires

    Je ne suis pas d'accord sur cette dernière prise. Dans mon propre test, il est clair qu'une ancienne version JDK 8 de Keytool fonctionne bien pour créer et même modifier les mots de passe à un mot de passe différent de celle du mot de clé, et la version plus récente de Keytool ne le fait pas. Le commentaire sur votre lien montre qu'ils ont changé ce comportement pour correspondre malheureusement aux mauvais acteurs (MSIE, Firefox, etc.), sans compter Android Studio ou Google, qui encourage et fournit toujours des moyens de différer ces mots de passe, même si l'outil sous-jacent a bêtement tué ce comportement , provoquant le doc "obsolète". Cela dit, je suis content de pouvoir le faire fonctionner, car cela a profité à mon projet.