Kesalahan "Sertifikat debug sudah kedaluwarsa" di plugin Eclipse Android

1898

Saya menggunakan plugin Eclipse Android untuk membangun sebuah proyek, tetapi saya mendapatkan kesalahan ini di jendela konsol:

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

Bagaimana saya memperbaikinya?

hap497
sumber
8
Adakah yang bisa mengatakan mengapa ini terjadi?
Matical
2
Apakah tanggal sistem Anda berubah, karena sertifikatnya yang berlaku 25 tahun (seperti yang disarankan saat menandatangani aplikasi). ini bukan acara lebih dari 5 tahun khusus
Trikaldarshi
Anda perlu membuat keystore baru
bynu022

Jawaban:

2241

Hapus sertifikat debug Anda ~/.android/debug.keystoredi Linux dan Mac OS X ; direktori adalah sesuatu seperti %USERPROFILE%/.androiddi Windows .

Plugin Eclipse kemudian akan menghasilkan sertifikat baru ketika Anda selanjutnya mencoba membangun paket debug. Anda mungkin perlu membersihkan dan kemudian membangun untuk menghasilkan sertifikat.

Christopher Orr
sumber
13
Pada Windows saya harus menghapus debug.keystore dan membuat beberapa perubahan untuk mendapatkan kompilasi baru. Saya membuat proyek pengujian baru, dan debug.keystore baru dihasilkan.
Tomas
117
Ini juga akan dihasilkan kembali untuk proyek saat ini jika Anda 'membersihkan' proyek (buka Proyek -> Bersihkan ...)
adamnfish
11
Sekarang ada masalah pelacak bug yang meminta ini diperbaiki. Silakan pilih itu. code.google.com/p/android/issues/detail?id=15370
Manfred Moser
61
Bersihkan tidak memperbaiki masalah bagi saya, saya perlu rm ~ / .android / debug.keystore dengan tangan.
James Moore
3
@James Menghapus keystore dengan tangan adalah bagian pertama dari jawaban di atas. Membersihkan proyek (atau membangun kembali) adalah apa yang perlu Anda lakukan untuk menghasilkan keystore baru.
Christopher Orr
334

Setelah instalasi, Android SDK menghasilkan debugsertifikat penandatanganan untuk Anda di keystore yang disebut debug.keystore. Plug-in Eclipse menggunakan sertifikat ini untuk menandatangani setiap aplikasi yang dihasilkan.

Sayangnya sertifikat debug hanya valid untuk 365 hari. Untuk menghasilkan yang baru, Anda harus menghapus debug.keystorefile yang ada . Lokasinya tergantung platform - Anda dapat menemukannya di Preferensi - Android - Build - Keystore debug default .

Jeff Gilfelt
sumber
23
Perubahan untuk menjadikan default 30 tahun diterima pada 6 April 2011: review.source.android.com/#change
James Moore
Jika Anda menghapus debug.keystore Anda, bagaimana Anda memperbarui aplikasi Anda?
user739375
6
@ user739375, debug.keystore hanya digunakan untuk debugging, sertifikat terpisah digunakan untuk "produksi".
Teo Klestrup Röijezon
@JamesMoore Saya benar-benar heran bahwa berapa usia sertifikat itu
Trikaldarshi
254

Menyakitkan harus menghapus semua file .apk pengembangan Anda, karena sertifikat baru tidak cocok sehingga Anda tidak dapat memutakhirkannya di semua AVD Anda. Anda harus mendapatkan kunci MAP-API pengembangan lain juga. Ada solusi lain.

Anda dapat membuat sertifikat debug sendiri debug.keystoredengan kedaluwarsa apa pun yang Anda inginkan. Lakukan ini di .androidfolder di bawah HOMEdirektori Anda :

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

keytool.exedapat ditemukan di folder bin JDK (misalnya C:\Program Files\Java\jdk1.6.0_31\bin\di Windows).

ADT menetapkan nama depan dan belakang pada sertifikat sebagai "Android Debug", unit organisasi sebagai "Android" dan kode negara dua huruf sebagai "AS". Anda dapat membiarkan nilai organisasi, kota, dan negara sebagai "Tidak Dikenal". Contoh ini menggunakan validitas 14000 hari. Anda dapat menggunakan nilai apa pun yang Anda suka.

Dave MacLean
sumber
3
Saya suka ini karena memberikan perbaikan jangka panjang hingga SDK menyediakan cara yang lebih baik untuk menangani sertifikat yang kedaluwarsa.
Sean Aitken
23
Saya suka ini karena saya tidak perlu menggunakan gerhana sama sekali.
MattK
Saya berasumsi bahwa ini akan diketik di bawah baris perintah. Jika demikian, saya mendapatkan kesalahan "keytool tidak dikenali". Bisakah Anda menjelaskan metode ini lebih lanjut?
Ted Betz
1
keytool dapat ditemukan di direktori bin JDK Anda (OS apa saja). Saya biasanya menambahkan direktori bin ini ke PATH saya sehingga di atas akan bekerja dari mana saja. Anda bisa menemukan direktori bin JDK Anda dan menambahkannya ke PATH Anda, atau Anda bisa memasukkan pathname lengkap ke keytool pada baris perintah.
Dave MacLean
1
Seperti yang ditunjukkan oleh komentator lain, Google tampaknya telah memperpanjang durasi default dari sertifikat debug sehingga menghapus file debug.keystore dan melakukan clean / build jauh lebih mudah.
Dave MacLean
81

Di Vista, ini berfungsi:

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

  2. ECLIPSE: Dalam Proyek, Bersihkan proyek. Tutup Eclipse. Buka kembali Eclipse.

  3. ECLIPSE: Mulai Emulator. Hapus Aplikasi dari emulator.

Anda baik untuk pergi.

Saya cukup khawatir ketika saya mengatakan kesalahan itu, tetapi saya memperbaikinya dari membaca di sini dan bermain-main selama 10 menit.

sth
sumber
68
  • WINDOWS

Hapus: debug.keystore terletak di C:\Documents and Settings\\[user]\.android, Bersihkan dan bangun proyek Anda.

  • Windows 7 pergi ke C:\Users\[username]\.androiddan menghapus file debug.keystore.

Bersihkan dan bangun proyek Anda.

  • MAC

Hapus keystore Anda yang terletak di ~/.android/debug.keystoreBersihkan dan bangun proyek Anda.

Dalam semua opsi jika Anda tidak bisa mendapatkan debug.keystore baru saja restart gerhana.

Jorgesys
sumber
56

Di Windows 7 ia berada di jalur

C:\Users\[username]\.android
  • kebagian jalan ini dan hapus debug.keystore
  • bersihkan dan bangun proyek Anda.
AZ_
sumber
41

Jika sertifikat kedaluwarsa di tengah-tengah proyek debugging, Anda harus melakukan uninstall manual :

Silakan jalankan adb uninstall <package_name>di shell.

Solata
sumber
38

Pada Mac, buka Terminal (direktori pengguna saat ini seharusnya terbuka), cd ".android" ("ls" untuk memvalidasi debug.keystore ada di sana). Akhirnya "rm debug.keystore" untuk menghapus file.

Michael Biermann
sumber
36

Android SDK menghasilkan sertifikat penandatanganan "debug" untuk Anda di keystore bernama debug.keystore. Plug-in Eclipse menggunakan sertifikat ini untuk menandatangani setiap pembuatan aplikasi yang dihasilkan.

Sayangnya sertifikat debug hanya valid untuk 365 hari. Untuk menghasilkan yang baru, Anda harus menghapus debug.keystorefile yang ada . Lokasinya tergantung platform - Anda dapat menemukannya di Preferensi -> Android -> Build -> * Keystore debug default.

Jika Anda menggunakan Windows, ikuti langkah-langkah di bawah ini.

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

Eclipse: Dalam Proyek, Bersihkan proyek. Tutup Eclipse. Buka kembali Eclipse.

Eclipse: Mulai Emulator. Hapus Aplikasi dari emulator.

Jika Anda menggunakan Linux atau Mac, ikuti langkah-langkah di bawah ini.

Hapus secara manual debug.keystoredari .androidfolder.

Anda dapat menemukan .androidfolder seperti ini:home/username/.android

Catatan: .androidfile default akan disembunyikan.

Jadi klik pada menu tempat. Di bawah pilih folder rumah. Di bawah klik pada tampilan, di bawah klik tampilkan file yang tersembunyi dan kemudian .androidfolder tersebut akan terlihat.

Hapus debug.keystoredari .android folder.

Kemudian bersihkan proyek Anda. Sekarang Android akan menghasilkan .android folderfile baru .

sravan
sumber
34

Saya punya masalah ini beberapa minggu yang lalu. Saya pertama kali mencoba pemecahan masalah di situs pengembang Android, tetapi tidak berhasil. Setelah itu saya menginstal ulang Android SDK, yang memecahkan masalah saya.

Maurits Rijk
sumber
33

Hmmm. Menarik betapa banyak orang memiliki pengalaman yang sedikit berbeda dengan ini. Saya ingat hari-hari ketika ini dianggap sebagai tanda bahwa perangkat lunak tidak siap untuk dirilis, dan tim akan benar-benar memperbaikinya SEBELUM pengguna mulai melihat masalah ini :(

Pengalaman saya sendiri sedikit berbeda. Saya sudah mencoba Project> Clean, tetapi masih mengalami kegagalan build yang sama. Lalu saya menghapus debug.keystore (di bawah .android) seperti jawaban pertama yang dikatakan. Masih mendapat masalah yang sama. Kemudian saya melakukan pembersihan lagi, dan bertanya-tanya tentang keajaiban, itu berhasil!

Sekarang jangan salah paham, saya senang saya berhasil berkat petunjuk di utas ini. Tapi jelas bersih tidak berfungsi dengan benar, dan bagaimana cara menemukan kunci kadaluwarsa setelah saya menghapus keystore ??? Jelas ada yang salah dengan Eclipse atau ADT - tidak begitu yakin yang mana.

Matt J.
sumber
Eclipse cenderung untuk men-cache file, sehingga diperlukan pembersihan / penyegaran kadang-kadang untuk memberi tahu bahwa file telah berubah pada disk.
navjotk
33

Di Ubuntu, ini berfungsi:

Saya pergi ke home/username/.androiddan saya berganti nama keystore.debugmenjadi keystoreold.debug. Saya kemudian menutup Eclipse, mulai Eclipse, dan SDK membuat sertifikat baru keystore.debugdi folder itu.

Anda kemudian harus menghapus / menginstal ulang aplikasi yang Anda instal melalui USB Debugging atau APK yang tidak ditandatangani ("unsigned" APK = ditandatangani dengan sertifikat debug).

FreewheelNat
sumber
14

Untuk windows xp pergi ke C:\Documents and Settings\%userprofile%\.androiddan hapus file debug.keystore , restart gerhana dan sekarang proyek Anda dibangun tanpa kesalahan.

Contoh jalur:

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

baca-sini-untuk-lebih .

raja
sumber
13

Dalam debug.keystorefile Windows adalah localtes di C:\Users\%Username%\.androidfolder. File ini dibuat ketika Anda menginstal SDK android Anda dan hanya berlaku selama satu tahun. Setelah perod ini, Anda akan mulai mendapatkan kesalahan iniError getting final archive: Debug certificate expired on xx/xx/xxxx .

Untuk menghapus kesalahan ini cukup hapus file dan jalankan program lagi. Di Eclipse saya, saya telah mengaktifkan Project->Build Automaticallysehingga langsung berfungsi tetapi jika Anda telah menonaktifkannya Anda harus membersihkan proyek Project->Clean.. pilih proyek Anda dan tekan ok. Maka Anda harus membuatnya secara manual. Klik ketiga pada proyek Anda dan pilih Build project. (Catatan - Anda hanya akan melihat opsi ini jika Anda telah menonaktifkan fitur Build Automatically di Projects Menu Anda)

Aniket Thakur
sumber
13

Pertama tutup gerhana itu

Buka CMD dengan Window Key + R atau via Run as Admin

Ikuti langkah berikut

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

setelah ini restart gerhana.

pengguna3291565
sumber
7

Setelah Anda menginstal Android SDK in Eclipse, itu menghasilkan sertifikat penandatanganan debug untuk Anda di keystore bernama debug.keystore . Plug-in Eclipse menggunakan sertifikat ini untuk menandatangani setiap aplikasi yang dihasilkan.

Sekarang, masalah dengan sertifikat debug ini adalah bahwa itu hanya berlaku selama satu tahun, atau 365 hari. If your Eclipse IDE uses an expired debug certificate, you will not be able to create and/or deploy an Android app.

Untuk memperbaiki masalah ini, yang perlu Anda lakukan adalah menghapus file debug.keystore .

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

Di sana Anda harus melihat folder tempat file itu berada. Hapus saja file itu dan Anda siap melakukannya.

Untuk info lebih lanjut. kamu bisa berkunjung

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

IntelliJ Amiya
sumber
0

Untuk memperbaiki masalah ini, cukup hapus file debug.keystore.

Lokasi penyimpanan default untuk AVD adalah

Di ~ / .android / di OS X dan Linux.

Di C: \ Documents and Settings \ .android \ pada Windows XP

Di C: \ Users \ .android \ pada Windows Vista dan Windows 7.

Lihat juga tautan ini, yang dapat bermanfaat.

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

Girish Patel
sumber