Erreur «Le certificat de débogage a expiré» dans les plug-ins Eclipse Android

1899

J'utilise des plugins Eclipse Android pour créer un projet, mais je reçois cette erreur dans la fenêtre de la console:

[2010-02-03 10:31:14 - androidVNC]Error generating final archive:
Debug certificate expired on 1/30/10 2:35 PM!

Comment je le répare?

hap497
la source
8
Quelqu'un peut-il dire pourquoi cela se produit-il?
Matical
2
La date de votre système a-t-elle changé, cause son certificat valide de 25 ans (comme recommandé lors de la signature de la demande). ce n'est pas un événement de plus de 5 ans en particulier
Trikaldarshi
Vous devez créer un nouveau magasin de
clés

Réponses:

2241

Supprimer votre certificat de débogage sous ~/.android/debug.keystoresur Linux et Mac OS X ; le répertoire est quelque chose comme %USERPROFILE%/.androidsous Windows .

Le plugin Eclipse devrait alors générer un nouveau certificat lors de la prochaine tentative de génération d'un package de débogage. Vous devrez peut-être nettoyer puis générer pour générer le certificat.

Christopher Orr
la source
13
Sous Windows, j'ai dû supprimer le debug.keystore et apporter quelques modifications pour lancer une nouvelle compilation. J'ai créé un nouveau projet de test et le nouveau debug.keystore a été généré.
Tomas
117
Il sera également recréé pour le projet en cours si vous "nettoyez" le projet (allez dans Projet -> Nettoyer ...)
adamnfish
11
Il y a maintenant un problème de suivi des bogues demandant que cela soit corrigé. Veuillez voter pour cela. code.google.com/p/android/issues/detail?id=15370
Manfred Moser
61
Clean n'a pas résolu le problème pour moi, j'avais besoin de rm ~ / .android / debug.keystore à la main.
James Moore
3
@James La suppression manuelle du fichier de clés est la première partie de la réponse ci-dessus. Le nettoyage du projet (ou la reconstruction) est ce que vous devez faire pour générer un nouveau fichier de clés.
Christopher Orr
334

Lors de l'installation, le SDK Android génère debugpour vous un certificat de signature dans un magasin de clés appelé debug.keystore. Le plug-in Eclipse utilise ce certificat pour signer chaque génération d'application générée.

Malheureusement, un certificat de débogage n'est valide que pendant 365 jours. Pour en générer un nouveau, vous devez supprimer le debug.keystorefichier existant . Son emplacement dépend de la plate-forme - vous pouvez le trouver dans Préférences - Android - Build - Keystore de débogage par défaut .

Jeff Gilfelt
la source
23
Un changement pour faire les 30 ans par défaut a été accepté le 6 avril 2011: review.source.android.com/#change,22128
James Moore
Si vous supprimez votre debug.keystore, comment mettriez-vous à jour votre application?
user739375
6
@ user739375, le debug.keystore n'est utilisé que pour le débogage, un certificat séparé est utilisé pour la "production".
Teo Klestrup Röijezon
@JamesMoore J'ai vraiment été étonné de voir quel âge avait le certificat
Trikaldarshi
254

Il est difficile de supprimer tous vos fichiers .apk de développement, car le nouveau certificat ne correspond pas, vous ne pouvez donc pas les mettre à niveau dans tous vos AVD. Vous devez également obtenir une autre clé MAP-API de développement. Il y a une autre solution.

Vous pouvez créer votre propre certificat de débogage debug.keystoreavec l'expiration que vous souhaitez. Pour ce faire, dans le .androiddossier sous votre HOMErépertoire:

keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 14000

keytool.exese trouve dans le dossier bin JDK (par exemple C:\Program Files\Java\jdk1.6.0_31\bin\sous Windows).

ADT définit le nom et le prénom du certificat sur "Android Debug", l'unité d'organisation sur "Android" et le code de pays à deux lettres sur "US". Vous pouvez laisser les valeurs d'organisation, de ville et d'état sur "Inconnu". Cet exemple utilise une validité de 14000 jours. Vous pouvez utiliser la valeur que vous souhaitez.

Dave MacLean
la source
3
J'aime cela, car il fournit un correctif à plus long terme jusqu'à ce que le SDK fournisse une meilleure façon de gérer le certificat expirant.
Sean Aitken
23
J'aime ça parce que je n'ai pas du tout besoin d'utiliser l'éclipse.
MattK
Je suppose que cela doit être tapé sous la ligne de commande. Si c'est le cas, j'obtiens une erreur "keytool n'est pas reconnu". Pouvez-vous expliquer davantage cette méthode?
Ted Betz
1
keytool se trouve dans le répertoire bin de votre JDK (tout OS). J'ajoute généralement ce répertoire bin à mon CHEMIN afin que ce qui précède fonctionne de n'importe où. Vous pouvez soit trouver votre répertoire bin JDK et l'ajouter à votre PATH, soit mettre le chemin d'accès complet à keytool sur la ligne de commande.
Dave MacLean
1
Comme d'autres commentateurs l'ont souligné, Google semble avoir prolongé la durée par défaut du certificat de débogage, il est donc beaucoup plus facile de supprimer le fichier debug.keystore et d'effectuer un nettoyage / build.
Dave MacLean
81

Sur Vista, cela a fonctionné:

  1. DOS: del c:\user\dad\.android\debug.keystore

  2. ECLIPSE: dans Project, Clean the project. Fermez Eclipse. Rouvrez Eclipse.

  3. ECLIPSE: démarrez l'émulateur. Supprimez l'application de l'émulateur.

Tu es prêt.

J'étais assez inquiet quand je dis cette erreur, mais je l'ai corrigée en lisant ici et en jouant pendant 10 minutes.

qch
la source
68
  • LES FENÊTRES

Supprimer: debug.keystore situé dans C:\Documents and Settings\\[user]\.android, Nettoyez et générez votre projet.

  • Windows 7 accédez au C:\Users\[username]\.androidfichier debug.keystore et supprimez-le.

Nettoyez et construisez votre projet.

  • MAC

Supprimez votre magasin de clés situé dans ~/.android/debug.keystoreClean et générez votre projet.

Dans toutes les options, si vous ne pouvez pas obtenir le nouveau debug.keystore, redémarrez simplement eclipse.

Jorgesys
la source
56

Dans Windows 7, c'est au niveau du chemin

C:\Users\[username]\.android
  • allez sur ce chemin et supprimez debug.keystore
  • nettoyer et construire votre projet.
AZ_
la source
41

Si un certificat expire au milieu du débogage du projet, vous devez effectuer une désinstallation manuelle :

Veuillez exécuter adb uninstall <package_name>dans un shell.

Solata
la source
38

Sur un Mac, ouvrez le Terminal (le répertoire de l'utilisateur actuel devrait s'ouvrir), cd ".android" ("ls" pour valider debug.keystore est là). Enfin "rm debug.keystore" pour supprimer le fichier.

Michael Biermann
la source
36

Le SDK Android génère pour vous un certificat de signature de «débogage» dans un magasin de clés appelé debug.keystore. Le plug-in Eclipse utilise ce certificat pour signer chaque génération d'application générée.

Malheureusement, un certificat de débogage n'est valide que pendant 365 jours. Pour en générer un nouveau, vous devez supprimer le debug.keystorefichier existant . Son emplacement dépend de la plate-forme - vous pouvez le trouver dans Préférences -> Android -> Build -> * Keystore de débogage par défaut.

Si vous utilisez Windows, suivez les étapes ci-dessous.

DOS: del c: \ user \ dad.android \ debug.keystore

Eclipse: dans Project, nettoyez le projet. Fermez Eclipse. Rouvrez Eclipse.

Eclipse: démarrez l'émulateur. Supprimez l'application de l'émulateur.

Si vous utilisez Linux ou Mac, suivez les étapes ci-dessous.

Supprimez manuellement debug.keystoredu .androiddossier.

Vous pouvez trouver le .androiddossier comme ceci:home/username/.android

Remarque: le .androidfichier par défaut sera masqué.

Alors cliquez sur le menu des lieux. Sous sélectionnez le dossier d'accueil. Sous cliquez sur la vue, sous cliquez sur afficher les fichiers cachés, puis le .androiddossier sera visible.

Supprimer debug.keystoredu .android folder.

Nettoyez ensuite votre projet. Maintenant, Android va générer un nouveau .android folderfichier.

sravan
la source
34

J'ai eu ce problème il y a quelques semaines. J'ai d'abord essayé le dépannage sur le site des développeurs Android, mais sans succès. Après cela, j'ai réinstallé le SDK Android, ce qui a résolu mon problème.

Maurits Rijk
la source
33

Hmmm. Intéressant de voir combien de personnes ont eu des expériences légèrement différentes avec cela. Je me souviens des jours où cela était considéré comme un signe que le logiciel n'était pas prêt pour la sortie, et l'équipe le corrigerait AVANT que les utilisateurs commencent à voir ces problèmes :(

Ma propre expérience était juste un peu différente. J'avais déjà essayé Project> Clean, mais j'ai toujours eu le même échec de construction. Ensuite, j'ai supprimé le debug.keystore (sous .android), comme le disait la première réponse. Toujours le même problème. Puis j'ai refait un nettoyage, et merveille des merveilles, ça a marché!

Maintenant, ne vous méprenez pas, je suis heureux de l'avoir fait fonctionner grâce aux conseils de ce fil. Mais clairement nettoyer ne fonctionne pas correctement, et comment a-t-il trouvé une clé expirée après avoir supprimé le magasin de clés ??? De toute évidence, quelque chose ne va pas avec Eclipse ou l'ADT - je ne sais pas trop lequel.

Matt J.
la source
Eclipse a tendance à mettre en cache les fichiers, donc un nettoyage / rafraîchissement est parfois nécessaire pour lui faire savoir que le fichier a changé sur le disque.
navjotk
33

Sur Ubuntu, cela a fonctionné:

Je suis allé home/username/.androidet je retitré keystore.debugà keystoreold.debug. J'ai ensuite fermé Eclipse, démarré Eclipse et SDK a créé un nouveau certificat keystore.debugdans ce dossier.

Vous devez ensuite désinstaller / réinstaller les applications que vous avez installées via le débogage USB ou un APK non signé (APK "non signé" = signé avec un certificat de débogage).

FreewheelNat
la source
14

Pour Windows XP , accédez au fichier debug.keystoreC:\Documents and Settings\%userprofile%\.android et supprimez - le, redémarrez l'éclipse et votre projet est maintenant généré sans erreur.

Exemple de chemin:

C:\Documents and Settings\raja.ap\.android\

lire ici pour en savoir plus .

raja
la source
13

Dans le debug.keystorefichier Windows est localtes dans le C:\Users\%Username%\.androiddossier. Ce fichier est créé lorsque vous installez votre SDK Android et n'est valide que pendant un an. Après ce perod, vous commencerez à obtenir cette erreur Error getting final archive: Debug certificate expired on xx/xx/xxxx.

Pour supprimer cette erreur, supprimez simplement le fichier et réexécutez le programme. Dans mon Eclipse, j'ai activéProject->Build Automatically , cela a donc fonctionné directement, mais si vous l'avez désactivé, vous devrez nettoyer le projet Project->Clean.. sélectionnez votre projet et appuyez sur ok. Ensuite, vous devrez le créer manuellement. 3ème clic sur votre projet et sélectionnez Build project. (Remarque - Vous ne verrez cette option que si vous avez activé la fonction Build Automatically dans votre menu Projets)

Aniket Thakur
la source
13

Fermez d'abord l'éclipse puis

Ouvrez CMD par la touche Windows + R ou via Exécuter en tant qu'administrateur

Suit l'étape suivante

del "%USERPROFILE%\.android\debug.keystore"
keytool -genkey -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 30000

après cette éclipse de redémarrage.

3291565
la source
7

Après avoir installé le Android SDK in Eclipse, il génère un certificat de signature de débogage pour vous dans un magasin de clés appelé debug.keystore . Le plug-in Eclipse utilise ce certificat pour signer chaque génération d'application générée.

Maintenant, le problème avec ce certificat de débogage est qu'il n'est valide que pour un an ou 365 jours. If your Eclipse IDE uses an expired debug certificate, you will not be able to create and/or deploy an Android app.

Pour résoudre ce problème, il vous suffit de supprimer le fichier debug.keystore .

  1. Go to Preferences
  2. Android
  3. Build
  4. Default debug keystore

Là, vous devriez voir le dossier où se trouve le fichier. Supprimez simplement ce fichier et vous êtes prêt à partir.

Pour plus d'informations. vous pouvez visiter

http://developer.android.com/tools/publishing/app-signing.html

IntelliJ Amiya
la source
0

Pour résoudre ce problème, supprimez simplement le fichier debug.keystore.

L'emplacement de stockage par défaut pour les AVD est

Dans ~ / .android / sur OS X et Linux.

Dans C: \ Documents and Settings \ .android \ sous Windows XP

Dans C: \ Users \ .android \ sous Windows Vista et Windows 7.

Voir également ce lien, qui peut être utile.

http://developer.android.com/tools/publishing/app-signing.html

Girish Patel
la source