Erro "Certificado de depuração expirado" nos plug-ins do Eclipse Android

1898

Estou usando os plug-ins do Eclipse Android para criar um projeto, mas estou recebendo este erro na janela do console:

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

Como faço para corrigir isso?

hap497
fonte
8
Alguém pode dizer por que isso acontece?
Matical
2
A data do sistema foi alterada, causando um certificado válido de 25 anos (conforme recomendado ao assinar o aplicativo). não é um evento com mais de 5 anos especificamente
Trikaldarshi
Você precisa criar um novo keystore
bynu022

Respostas:

2241

Exclua seu certificado de depuração ~/.android/debug.keystoreno Linux e Mac OS X ; o diretório é algo como %USERPROFILE%/.androidno Windows .

O plug-in do Eclipse deve gerar um novo certificado quando você tentar construir um pacote de depuração. Pode ser necessário limpar e criar para gerar o certificado.

Christopher Orr
fonte
13
No Windows, tive que excluir o debug.keystore e fazer algumas alterações para iniciar uma nova compilação. Criei um novo projeto de teste e o novo debug.keystore foi gerado.
Tomas
117
Também será re-gerado para o projeto atual se 'limpa' o projeto (ir para o Projeto -> Limpo ...)
adamnfish
11
Agora há um problema no rastreador de erros solicitando que isso seja corrigido. Por favor vote nele. code.google.com/p/android/issues/detail?id=15370
Manfred Moser
61
O Clean não resolveu o problema para mim, eu precisava rm ~ / .android / debug.keystore manualmente.
James Moore
3
@James A exclusão manual do keystore é a primeira parte da resposta acima. Limpar o projeto (ou reconstruir) é o que você precisa fazer para gerar um novo keystore.
Christopher Orr
334

Após a instalação, o Android SDK gera um debugcertificado de assinatura para você em um keystore chamado debug.keystore. O plug-in Eclipse usa esse certificado para assinar cada construção de aplicativo que é gerada.

Infelizmente, um certificado de depuração é válido apenas por 365 dias. Para gerar um novo, você deve excluir o debug.keystorearquivo existente . Sua localização depende da plataforma - você pode encontrá-lo em Preferências - Android - Compilar - Keystore de depuração padrão .

Jeff Gilfelt
fonte
23
Uma mudança para tornar o padrão de 30 anos foi aceito em 6 de abril de 2011: review.source.android.com/#change,22128
James Moore
Se você excluir seu debug.keystore, como atualizaria seu aplicativo?
user739375
6
@ user739375, o debug.keystore é usado apenas para depuração, um certificado separado é usado para "produção".
Teo Klestrup Röijezon 01/01
@JamesMoore eu realmente surpreendeu que quantos anos o certificado foi
Trikaldarshi
254

É difícil excluir todos os seus arquivos .apk de desenvolvimento, porque o novo certificado não corresponde, portanto você não pode atualizá-los em todos os seus AVDs. Você também precisa obter outra chave MAP-API de desenvolvimento. Existe outra solução.

Você pode criar seu próprio certificado de depuração debug.keystorecom a expiração que desejar. Faça isso na .androidpasta em seu HOMEdiretório:

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

keytool.exepode ser encontrado na pasta bin JDK (por exemplo, C:\Program Files\Java\jdk1.6.0_31\bin\no Windows).

O ADT define o nome e o sobrenome no certificado como "Android Debug", a unidade organizacional como "Android" e o código do país com duas letras como "US". Você pode deixar os valores da organização, cidade e estado como "Desconhecido". Este exemplo usa uma validade de 14000 dias. Você pode usar qualquer valor que desejar.

Dave MacLean
fonte
3
Gosto disso porque fornece uma correção a longo prazo até que o SDK for uma maneira melhor de lidar com o certificado expirado.
Sean Aitken
23
Eu gosto disso porque não preciso usar o eclipse.
MattK
Estou assumindo que isso deve ser digitado sob a linha de comando. Em caso afirmativo, recebo um erro "keytool não é reconhecido". Você pode explicar melhor esse método?
Ted Betz
1
keytool pode ser encontrado no diretório bin do seu JDK (qualquer sistema operacional). Eu costumo adicionar esse diretório bin ao meu PATH para que o acima funcione de qualquer lugar. Você pode encontrar o diretório bin do JDK e adicioná-lo ao PATH ou pode colocar o nome completo do caminho no keytool na linha de comandos.
Dave MacLean
1
Como outros comentaristas apontaram, o Google parece ter estendido a duração padrão do certificado de depuração, portanto, excluir o arquivo debug.keystore e fazer a limpeza / compilação é muito mais fácil.
Dave MacLean
81

No Vista, isso funcionou:

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

  2. ECLIPSE: No projeto, Limpe o projeto. Feche o Eclipse. Abra novamente o Eclipse.

  3. ECLIPSE: Inicie o emulador. Remova o aplicativo do emulador.

Você está pronto para ir.

Fiquei bastante preocupado quando digo esse erro, mas resolvi lendo e reproduzindo por 10 minutos.

sth
fonte
68
  • JANELAS

Exclua: debug.keystore localizado em C:\Documents and Settings\\[user]\.android, Limpe e crie seu projeto.

  • O Windows 7 vai C:\Users\[username]\.androide exclui o arquivo debug.keystore.

Limpe e construa seu projeto.

  • MAC

Exclua seu keystore localizado em ~/.android/debug.keystoreLimpar e construa seu projeto.

Em todas as opções, se você não pode obter o novo debug.keystore, basta reiniciar o eclipse.

Jorgesys
fonte
56

No Windows 7, está no caminho

C:\Users\[username]\.android
  • vá para esse caminho e remova debug.keystore
  • limpe e construa seu projeto.
AZ_
fonte
41

Se um certificado expirar no meio da depuração do projeto, você deverá fazer uma desinstalação manual :

Por favor, execute adb uninstall <package_name>em um shell.

Solata
fonte
38

Em um Mac, abra o Terminal (o diretório do usuário atual deve abrir), cd ".android" ("ls" para validar o debug.keystore). Finalmente "rm debug.keystore" para remover o arquivo.

Michael Biermann
fonte
36

O SDK do Android gera um certificado de assinatura de "depuração" para você em um keystore chamado debug.keystore. O plug-in Eclipse usa esse certificado para assinar cada compilação de aplicativo que é gerada.

Infelizmente, um certificado de depuração é válido apenas por 365 dias. Para gerar um novo, você deve excluir o debug.keystorearquivo existente . Sua localização depende da plataforma - você pode encontrá-lo em Preferências -> Android -> Compilar -> * Keystore de depuração padrão.

Se você estiver usando o Windows, siga as etapas abaixo.

DOS: del c: \ usuário \ pai.android \ debug.keystore

Eclipse: no projeto, limpe o projeto. Feche o Eclipse. Abra novamente o Eclipse.

Eclipse: Inicie o emulador. Remova o aplicativo do emulador.

Se você estiver usando Linux ou Mac, siga as etapas abaixo.

Exclua manualmente debug.keystoreda .androidpasta.

Você pode encontrar a .androidpasta assim:home/username/.android

Nota: o .androidarquivo padrão será oculto.

Então clique no menu de lugares. Em selecionar pasta pessoal. Em clique na visualização, clique em mostrar arquivos ocultos e a .androidpasta ficará visível.

Excluir debug.keystoredo .android folder.

Depois limpe seu projeto. Agora o Android irá gerar um novo .android folderarquivo.

sravan
fonte
34

Eu tive esse problema algumas semanas atrás. Eu tentei a solução de problemas no site do desenvolvedor do Android, mas sem sorte. Depois disso, reinstalei o Android SDK, o que resolveu o meu problema.

Maurits Rijk
fonte
33

Hummm. Interessante como tantas pessoas tiveram experiências ligeiramente diferentes com isso. Lembro-me dos dias em que isso era considerado um sinal de que o software não estava pronto para o lançamento e a equipe realmente o corrigia ANTES que os usuários começassem a ver esses problemas :(

Minha própria experiência foi um pouco diferente. Eu já havia experimentado Projeto> Limpo, mas ainda obtive a mesma falha de compilação. Em seguida, excluí o debug.keystore (em .android) exatamente como a primeira resposta dizia. Ainda tenho o mesmo problema. Então eu fiz uma limpeza novamente, e maravilha das maravilhas, funcionou!

Agora, não me interpretem mal, estou feliz por ter conseguido funcionar graças às dicas neste tópico. Mas claramente limpo não está funcionando corretamente, e como ele encontrou uma chave expirada depois que eu excluí o keystore ??? Claramente, algo está errado com o Eclipse ou o ADT - não tenho certeza qual.

Matt J.
fonte
O Eclipse tende a armazenar arquivos em cache, portanto, às vezes, é necessário fazer uma limpeza / atualização para informar que o arquivo foi alterado no disco.
navjotk
33

No Ubuntu, isso funcionou:

Eu fui para home/username/.androide eu renomeado keystore.debugpara keystoreold.debug. Então fechei o Eclipse, iniciei o Eclipse e o SDK criou um novo certificado keystore.debugnessa pasta.

Você precisa desinstalar / reinstalar os aplicativos que você instalou via Depuração USB ou um APK não assinado (APK "não assinado" = assinado com certificado de depuração).

Roda livre
fonte
14

Para o windows xp, acesse C:\Documents and Settings\%userprofile%\.androide exclua o arquivo debug.keystore , reinicie o eclipse e agora seu projeto é compilado sem erros.

Caminho do exemplo:

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

leia aqui para mais .

rajá
fonte
13

No Windows, o debug.keystorearquivo está localizado na C:\Users\%Username%\.androidpasta. Este arquivo é criado quando você instala o SDK do Android e é válido apenas por um ano. Após esse perod, você começará a receber esse erro Error getting final archive: Debug certificate expired on xx/xx/xxxx.

Para remover esse erro, exclua o arquivo e execute o programa novamente. No meu Eclipse, ativei Project->Build Automaticallypara que funcionasse diretamente, mas, caso você o tenha desativado, será necessário limpar o projeto Project->Clean. Selecione seu projeto e pressione ok. Então você precisará construí-lo manualmente. 3º clique no seu projeto e selecione Build project(Nota - Você só verá essa opção se tiver o recurso Build Automaticamente em seu menu Projetos)

Aniket Thakur
fonte
13

Primeiro feche o eclipse então

Abra o CMD pela tecla Window + R ou via Executar como administrador

Segue a etapa seguinte

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

após esse reinício eclipse.

user3291565
fonte
7

Depois de instalar o Android SDK in Eclipse, ele gera um certificado de assinatura de depuração para você em um keystore chamado debug.keystore . O plug-in Eclipse usa esse certificado para assinar cada construção de aplicativo que é gerada.

Agora, o problema com este certificado de depuração é que ele é válido apenas por um ano ou 365 dias. If your Eclipse IDE uses an expired debug certificate, you will not be able to create and/or deploy an Android app.

Para corrigir esse problema, tudo o que você precisa fazer é excluir o arquivo debug.keystore .

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

Lá você deve ver a pasta em que o arquivo está localizado. Simplesmente exclua esse arquivo e você estará pronto.

Para mais informações. você pode visitar

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

IntelliJ Amiya
fonte
0

Para corrigir esse problema, simplesmente exclua o arquivo debug.keystore.

O local de armazenamento padrão para AVDs é

Em ~ / .android / no OS X e Linux.

Em C: \ Documents and Settings \ .android \ no Windows XP

Em C: \ Usuários \ .android \ no Windows Vista e Windows 7.

Veja também este link, que pode ser útil.

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

Girish Patel
fonte