2013-03-07 3 views
0

J'ai donc une application Android sur le marché, et maintenant j'ai besoin de la mettre à jour. J'ai essayé de signer la nouvelle apk mais j'ai des difficultés avec ça.Signer des problèmes avec keystore et Android

J'ai le magasin de clés, et j'ai vérifié qu'il contient le bon certificat en utilisant keytool -list -v -keystore deployment.keystore. Le keystore n'a pas de mot de passe, ne vous en souvenez pas, mais c'est parti. Si j'entre quelque chose, j'obtiens une erreur, sinon je l'accepte et je liste les certificats contenus. Maintenant, le problème est que lorsque j'essaie d'exporter le fichier apk dans Eclipse, en utilisant l'assistant d'exportation, je n'ai pas le droit de ne pas avoir de mot de passe sur le keystore, donc je ne peux pas accéder aux informations d'identification. J'ai donc essayé d'exécuter ce qui suit dans une tentative de changer le mot de passe sur le keystore keytool -storepasswd -keystore deployment.keystore. On me demande un mot de passe, et ni le mot de passe de la chaîne vide ni le nouveau mot de passe que je veux définir ne sont acceptés. Si son < 6 caractères de longueur je suis invité à nouveau, et si ses caractères> 6, je reçois l'erreur suivante: keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect.

Maintenant, je ne sais plus quoi faire, et je cherche la connaissance collective de SO pour m'aider.

MISE À JOUR: J'ai maintenant exporté le certificat, puis je l'ai réimporté dans un nouveau fichier de clés avec succès. Le problème est maintenant que je reçois un Unhandled event loop exception dans Eclipse lorsque j'essaie de signer. Des idées?

MISE À JOUR 2: La tentative de connexion au terminal pour éviter l'exception que lance Eclipse a posé de nouveaux problèmes. J'essaie ce qui suit: jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore new.keystore myApp.apk myAlias. J'ai seulement le certificat dans mon nouveau fichier de clés, mais aucune clé privée, donc j'ai essayé de les exporter en tant que p12 à partir de l'ancien fichier de clés en exécutant keytool -importkeystore -srckeystore deployment.keystore -destkeystore myKeystore.p12 -deststoretype PKCS12.

Maintenant que je reçois l'avertissement suivant:

******* WARNING WARNING WARNING *******

The integrity of the information stored in the srckeystore* * has NOT been verified! In order to verify its integrity, * * you must provide the srckeystore password.

******* WARNING WARNING WARNING *******

Et cela me demande maintenant un mot de passe pour la srckeystore qui est la chaîne vide. C'est un trou de boucle dans lequel je semble être tombé!

Mise à jour 3: J'ai maintenant changé avec succès le mot de passe de keystore d'origine en alimentant avec la commande -storepass. Maintenant, cependant, je suis invité pour le keypass de la paire de clés privée/publique réelle dans le keystore. Je ne me souviens pas de les avoir configurés, et même si j'ai lu que they default to the keystore password if not set ils n'acceptent rien que j'entre. Ma recherche continue.

-MrDresden

+0

Avez-vous essayé d'exécuter l'exportation à partir de la console? peut-être dans la console, vous pouvez avoir un mot de passe vide ... sinon DAMN :) – Daler

+0

Eh bien, je viens de trouver l'option d'exportation dès que j'ai posté la question, alors cela a fonctionné. J'ai maintenant créé un nouveau keystore, avec un mot de passe, et j'y ai importé le certificat. Mais maintenant que j'essaie de signer avec le certificat, j'obtiens "Exception de boucle d'événement non gérée" dans Eclipse ... donc DAMN en effet.Quand il pleut, ça se déverse! – Hrafn

+0

L'avez-vous essayé à partir de la console à l'aide du nouveau magasin de clés? Peut-être s'agit-il d'un problème d'éclipse? Essayez également de mettre à jour le plugin Android dans votre éclipse - peut-être y a-t-il une nouvelle version disponible qui fonctionne? Sinon ... DAMNED ;-) – Ridcully

Répondre

0

Après avoir essayé quelques choses différentes, nous avons fini par republier l'application avec une nouvelle clé d'une nouvelle keystore. Heureusement, il n'était sorti que depuis quelques heures, et n'a pas été promu du tout, donc seulement environ 10 utilisateurs ont été touchés. Ce qui est encore à beaucoup. Après tout cela, nous avons commencé à configurer Maven et toute la publication ne sera faite qu'après que le serveur Maven aura compilé et signé l'application. Tout est sauvegardé, tous les mots de passe sont conservés, etc.