Error "Certificado de depuración caducado" en los complementos de Android Eclipse

1898

Estoy usando los complementos de Android Eclipse para construir un proyecto, pero recibo este error en la ventana de la consola:

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

¿Cómo lo soluciono?

hap497
fuente
8
¿Alguien puede decir por qué sucede esto?
Matical
2
¿Cambió la fecha de su sistema, causa un certificado válido de 25 años (como se recomienda al firmar la solicitud)? su evento no tiene más de 5 años específicamente
Trikaldarshi
Necesita crear un nuevo almacén de claves
bynu022

Respuestas:

2241

Elimine su certificado de depuración ~/.android/debug.keystoreen Linux y Mac OS X ; El directorio es algo así como %USERPROFILE%/.androiden Windows .

El complemento Eclipse debería generar un nuevo certificado la próxima vez que intente crear un paquete de depuración. Es posible que deba limpiar y luego compilar para generar el certificado.

Christopher Orr
fuente
13
En Windows tuve que eliminar el debug.keystore y hacer algunos cambios para poner en marcha una nueva compilación. Creé un nuevo proyecto de prueba y se generó el nuevo debug.keystore.
Tomás
117
También se volverá a generar para el proyecto actual si 'limpia' el proyecto (vaya a Proyecto -> Limpiar ...)
adamnfish
11
Ahora hay un problema con el rastreador de errores que solicita que se solucione. Por favor vote por ello. code.google.com/p/android/issues/detail?id=15370
Manfred Moser
61
Clean no me solucionó el problema, necesitaba rm ~ / .android / debug.keystore a mano.
James Moore
3
@ James Eliminar el almacén de claves a mano es la primera parte de la respuesta anterior. Limpiar el proyecto (o la reconstrucción) es lo que debe hacer para generar un nuevo almacén de claves.
Christopher Orr
334

Tras la instalación, el SDK de Android genera un debugcertificado de firma para usted en un almacén de claves llamado debug.keystore. El complemento Eclipse utiliza este certificado para firmar cada compilación de aplicación que se genera.

Lamentablemente, un certificado de depuración solo es válido por 365 días. Para generar uno nuevo, debe eliminar el debug.keystorearchivo existente . Su ubicación depende de la plataforma: puede encontrarla en Preferencias - Android - Compilación - Almacén de claves de depuración predeterminado .

Jeff Gilfelt
fuente
23
El 6 de abril de 2011 se aceptó un cambio para hacer los 30 años predeterminados: review.source.android.com/#change,22128
James Moore
Si elimina su debug.keystore, ¿cómo actualizaría su aplicación?
user739375
66
@ user739375, el debug.keystore solo se usa para la depuración, se usa un certificado separado para "producción".
Teo Klestrup Röijezon
@JamesMoore Realmente me sorprendió la antigüedad del certificado
Trikaldarshi
254

Es difícil tener que eliminar todos los archivos .apk de desarrollo, porque el nuevo certificado no coincide, por lo que no puede actualizarlos en todos sus AVD. También debe obtener otra clave de desarrollo MAP-API. Hay otra solución

Puede crear su propio certificado de depuración debug.keystorecon el vencimiento que desee. Haga esto en la .androidcarpeta debajo de su HOMEdirectorio:

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

keytool.exese puede encontrar en la carpeta bin JDK (por ejemplo, C:\Program Files\Java\jdk1.6.0_31\bin\en Windows).

ADT establece el nombre y apellido en el certificado como "Android Debug", la unidad organizativa como "Android" y el código de país de dos letras como "US". Puede dejar los valores de la organización, la ciudad y el estado como "Desconocidos". Este ejemplo usa una validez de 14000 días. Puedes usar el valor que quieras.

Dave MacLean
fuente
3
Me gusta esto porque proporciona una solución más a largo plazo hasta que el SDK proporciona una mejor manera de manejar el certificado que expira.
Sean Aitken
23
Me gusta esto porque no necesito usar eclipse en absoluto.
MattK
Supongo que esto se debe escribir debajo de la línea de comando. Si es así, aparece el error "no se reconoce la herramienta clave". ¿Puedes explicar más este método?
Ted Betz
1
keytool se puede encontrar en el directorio bin de su JDK (cualquier sistema operativo). Por lo general, agrego este directorio bin a mi RUTA para que lo anterior funcione desde cualquier lugar. Puede encontrar su directorio bin JDK y agregarlo a su RUTA, o puede poner el nombre de ruta completo a keytool en la línea de comando.
Dave MacLean el
1
Como han señalado otros comentaristas, Google parece haber extendido la duración predeterminada del certificado de depuración, por lo que eliminar el archivo debug.keystore y limpiar / construir es mucho más fácil.
Dave MacLean el
81

En Vista, esto funcionó:

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

  2. ECLIPSE: En Proyecto, Limpia el proyecto. Cierra Eclipse. Vuelva a abrir Eclipse.

  3. ECLIPSE: Inicie el emulador. Eliminar la aplicación del emulador.

Tú eres bueno para irte.

Estaba bastante preocupado cuando digo ese error, pero lo solucioné leyendo aquí y jugando durante 10 minutos.

algo
fuente
68
  • Ventanas

Eliminar: debug.keystore ubicado en C:\Documents and Settings\\[user]\.android, Limpiar y construir su proyecto.

  • Windows 7 vaya C:\Users\[username]\.androidy elimine el archivo debug.keystore.

Limpia y construye tu proyecto.

  • MAC

Elimine su almacén de claves ubicado en ~/.android/debug.keystoreClean y cree su proyecto.

En todas las opciones si no puede obtener el nuevo debug.keystore simplemente reinicie eclipse.

Jorgesys
fuente
56

En Windows 7 está en el camino

C:\Users\[username]\.android
  • Ir a este camino y eliminar debug.keystore
  • limpia y construye tu proyecto.
ARIZONA_
fuente
41

Si un certificado caduca en medio de la depuración del proyecto, debe hacer una desinstalación manual :

Por favor, ejecute adb uninstall <package_name>en un shell.

Solata
fuente
38

En una Mac, abra la Terminal (debe abrir el directorio del usuario actual), cd ".android" ("ls" para validar debug.keystore está allí). Finalmente "rm debug.keystore" para eliminar el archivo.

Michael Biermann
fuente
36

El SDK de Android genera un certificado de firma de "depuración" para usted en un almacén de claves llamado debug.keystore. El complemento Eclipse usa este certificado para firmar cada compilación de aplicación que se genera.

Lamentablemente, un certificado de depuración solo es válido por 365 días. Para generar uno nuevo, debe eliminar el debug.keystorearchivo existente . Su ubicación depende de la plataforma; puede encontrarla en Preferencias -> Android -> Compilar -> * Almacén de claves de depuración predeterminado.

Si está utilizando Windows, siga los pasos a continuación.

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

Eclipse: En Proyecto, Limpia el proyecto. Cierra Eclipse. Vuelva a abrir Eclipse.

Eclipse: Inicie el emulador. Eliminar la aplicación del emulador.

Si está utilizando Linux o Mac, siga los pasos a continuación.

Eliminar manualmente debug.keystorede la .androidcarpeta.

Puede encontrar la .androidcarpeta así:home/username/.android

Nota: el .androidarchivo predeterminado estará oculto.

Haz clic en el menú de lugares. En seleccione la carpeta de inicio. Debajo de hacer clic en ver, debajo de hacer clic en mostrar archivos ocultos y luego la .androidcarpeta estará visible.

Eliminar debug.keystorede la .android folder.

Luego limpia tu proyecto. Ahora Android generará un nuevo .android folderarchivo.

sravan
fuente
34

Tuve este problema hace un par de semanas. Primero probé la solución de problemas en el sitio de desarrolladores de Android, pero sin suerte. Después de eso, reinstalé el SDK de Android, lo que resolvió mi problema.

Maurits Rijk
fuente
33

Hmmm Es interesante ver cómo tantas personas han tenido experiencias ligeramente diferentes con esto. Recuerdo los días en que esto se consideraba una señal de que el software no estaba listo para su lanzamiento, y el equipo realmente lo arreglaría ANTES de que los usuarios comenzaran a ver estos problemas :(

Mi propia experiencia fue un poco diferente. Ya había intentado Proyecto> Limpiar, pero aún obtuve el mismo error de compilación. Luego eliminé el debug.keystore (bajo .android) tal como decía la primera respuesta. Aún tengo el mismo problema. Luego hice una limpieza otra vez, y maravilla de maravillas, ¡funcionó!

Ahora no me malinterpreten, me alegro de haberlo hecho funcionar gracias a las sugerencias en este hilo. Pero claramente clean no funciona bien, y ¿cómo encontró una clave caducada después de eliminar el almacén de claves? Claramente, algo está mal con Eclipse o el ADT, no estoy tan seguro de cuál.

Matt J.
fuente
Eclipse tiende a almacenar en caché los archivos, por lo que a veces se requiere una limpieza / actualización para informarle que el archivo ha cambiado en el disco.
navjotk
33

En Ubuntu, esto funcionó:

Fui home/username/.androidy me cambié el nombre keystore.debuga keystoreold.debug. Luego cerré Eclipse, comencé Eclipse y SDK creó un nuevo certificado keystore.debugen esa carpeta.

Luego debe desinstalar / reinstalar las aplicaciones que instaló a través de Depuración de USB o un APK sin firmar (APK "sin firmar" = firmado con certificado de depuración).

Rueda LibreNat
fuente
14

Para Windows XP, vaya C:\Documents and Settings\%userprofile%\.androidy elimine el archivo debug.keystore , reinicie el eclipse y ahora su proyecto se compila sin error.

Ruta de ejemplo:

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

Leer aquí para más .

raja
fuente
13

En Windows el debug.keystorearchivo se localiza en la C:\Users\%Username%\.androidcarpeta. Este archivo se crea cuando instala su SDK de Android y es válido solo por un año. Después de este perod comenzará a recibir este error Error getting final archive: Debug certificate expired on xx/xx/xxxx.

Para eliminar este error, simplemente elimine el archivo y vuelva a ejecutar el programa. En mi Eclipse lo he habilitado, Project->Build Automaticallypor lo que funcionó directamente, pero en caso de que lo haya deshabilitado, deberá limpiar el proyecto Project->Clean... seleccione su proyecto y presione OK. Entonces necesitarás construirlo manualmente. 3. Haga clic en su proyecto y seleccione Build project. (Nota: solo verá esta opción si ha marcado la función Generar automáticamente en el menú Proyectos)

Aniket Thakur
fuente
13

Primero cierre el eclipse y luego

Abra CMD con Window Key + R o mediante Ejecutar como administrador

Sigue el siguiente paso

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

después de este reinicio eclipse.

usuario3291565
fuente
7

Después de instalar Android SDK in Eclipse, genera un certificado de firma de depuración para usted en un almacén de claves llamado debug.keystore . El complemento Eclipse utiliza este certificado para firmar cada compilación de aplicación que se genera.

Ahora, el problema con este certificado de depuración es que solo es válido por un año o 365 días. If your Eclipse IDE uses an expired debug certificate, you will not be able to create and/or deploy an Android app.

Para solucionar este problema, todo lo que necesita hacer es eliminar el archivo debug.keystore .

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

Allí debería ver la carpeta donde se encuentra el archivo. Simplemente elimine ese archivo y listo.

Para más información. puedes visitar

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

IntelliJ Amiya
fuente
0

Para solucionar este problema, simplemente elimine el archivo debug.keystore.

La ubicación de almacenamiento predeterminada para AVD es

En ~ / .android / en OS X y Linux.

En C: \ Documents and Settings \ .android \ en Windows XP

En C: \ Users \ .android \ en Windows Vista y Windows 7.

También vea este enlace, que puede ser útil.

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

Patel Girish
fuente