ข้อผิดพลาด“ ใบรับรองการดีบักหมดอายุ” ในปลั๊กอิน Eclipse Android


1898

ฉันใช้ปลั๊กอิน Eclipse Android เพื่อสร้างโครงการ แต่ฉันได้รับข้อผิดพลาดนี้ในหน้าต่างคอนโซล:

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

ฉันจะแก้ไขได้อย่างไร


8
มีใครบอกได้ไหมว่าทำไมสิ่งนี้ถึงเกิดขึ้น
Matical

2
วันที่ระบบของคุณเปลี่ยนไปหรือไม่ให้ใช้ใบรับรองที่ถูกต้อง 25 ปี ไม่ใช่เหตุการณ์ที่มีอายุมากกว่า 5 ปีโดยเฉพาะ
Trikaldarshi

คุณต้องสร้างที่เก็บคีย์ใหม่
bynu022

คำตอบ:


2241

ลบใบรับรองการแก้ปัญหาของคุณภายใต้~/.android/debug.keystoreบนLinux และ Mac OS X ; ไดเรกทอรีเป็นสิ่งที่ต้องการ%USERPROFILE%/.androidในการใช้ Windows

ปลั๊กอิน Eclipse ควรสร้างใบรับรองใหม่เมื่อคุณพยายามสร้างแพคเกจการตรวจแก้จุดบกพร่องครั้งต่อไป คุณอาจต้องทำความสะอาดแล้วสร้างเพื่อสร้างใบรับรอง


13
บน Windows ฉันต้องลบ debug.keystore และทำการเปลี่ยนแปลงบางอย่างเพื่อให้คอมไพล์ใหม่เกิดขึ้น ฉันสร้างโครงการทดสอบใหม่และสร้าง debug.keystore ใหม่
Tomas

117
มันจะถูกสร้างขึ้นใหม่สำหรับโครงการปัจจุบันหากคุณ 'ทำความสะอาด' โครงการ (ไปที่โครงการ -> ทำความสะอาด ... )
adamnfish

11
ขณะนี้มีปัญหาตัวติดตามข้อผิดพลาดที่ขอให้แก้ไข กรุณาลงคะแนนให้ code.google.com/p/android/issues/detail?id=15370
Manfred Moser

61
ทำความสะอาดไม่ได้แก้ปัญหาสำหรับฉันฉันต้อง rm ~ / .android / debug.keystore ด้วยมือ
James Moore

3
@James การลบที่เก็บคีย์ด้วยมือเป็นส่วนแรกของคำตอบด้านบน การล้างโปรเจ็กต์ (หรือสร้างใหม่) คือสิ่งที่คุณต้องทำเพื่อสร้างที่เก็บคีย์ใหม่
Christopher Orr

334

เมื่อติดตั้ง, Android SDK สร้างdebugใบรับรองการลงนามให้คุณใน keystore debug.keystoreที่เรียกว่า ปลั๊กอิน Eclipse ใช้ใบรับรองนี้เพื่อลงนามแต่ละบิลด์แอ็พพลิเคชันที่สร้างขึ้น

น่าเสียดายที่ใบรับรองการดีบักใช้ได้เพียง 365 วันเท่านั้น ในการสร้างไฟล์ใหม่คุณต้องลบdebug.keystoreไฟล์ที่มีอยู่ สถานที่มันขึ้นอยู่กับแพลตฟอร์ม - คุณสามารถหาได้ในการตั้งค่า - Android - รูปร่าง - เริ่มต้นการแก้ปัญหาที่เก็บคีย์


23
การเปลี่ยนแปลงที่จะทำให้การเริ่มต้นเป็นเวลา 30 ปีได้รับการยอมรับในวันที่ 6 เมษายน 2011: review.source.android.com/#change,22128
James Moore

หากคุณลบ debug.keystore คุณจะอัพเดทแอปพลิเคชันของคุณอย่างไร?
user739375

6
@ user739375 debug.keystore ใช้สำหรับการดีบักเท่านั้นใบรับรองแยกใช้สำหรับ "การผลิต"
Teo Klestrup Röijezon

@ JamesMoore ฉันประหลาดใจจริงๆที่ใบรับรอง
มีอายุเท่าไหร่

254

เป็นเรื่องยากที่จะต้องลบไฟล์. apk ที่กำลังพัฒนาทั้งหมดของคุณเนื่องจากใบรับรองใหม่ไม่ตรงกันดังนั้นคุณจึงไม่สามารถอัปเกรดได้ใน AVD ทั้งหมดของคุณ คุณต้องได้รับรหัส MAP-API การพัฒนาอื่นเช่นกัน มีวิธีแก้ไขปัญหาอื่น

คุณสามารถสร้างใบรับรองการแก้ไขข้อบกพร่องของคุณเองdebug.keystoreด้วยการหมดอายุใด ๆ ที่คุณต้องการ ทำสิ่งนี้ใน.androidโฟลเดอร์ภายใต้HOMEไดเรกทอรีของคุณ:

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

keytool.exeสามารถพบได้ในโฟลเดอร์ถังขยะ JDK (เช่นC:\Program Files\Java\jdk1.6.0_31\bin\บน Windows)

ADT ตั้งชื่อและนามสกุลของใบรับรองเป็น "Android Debug" หน่วยขององค์กรเป็น "Android" และรหัสประเทศสองตัวอักษรเป็น "US" คุณสามารถปล่อยให้องค์กรเมืองและค่าสถานะเป็น "ไม่ทราบ" ตัวอย่างนี้ใช้ความถูกต้องของ 14000 วัน คุณสามารถใช้ค่าอะไรก็ได้ที่คุณชอบ


3
ฉันชอบสิ่งนี้เพราะมันให้การแก้ไขในระยะยาวมากขึ้นจนกว่า SDK จะให้วิธีที่ดีกว่าในการจัดการใบรับรองที่หมดอายุ
Sean Aitken

23
ฉันชอบสิ่งนี้เพราะฉันไม่จำเป็นต้องใช้ eclipse เลย
MattK

ฉันสมมติว่านี่คือการพิมพ์ภายใต้บรรทัดคำสั่ง ถ้าเป็นเช่นนั้นฉันได้รับข้อผิดพลาด "keytool ไม่รู้จัก" คุณอธิบายเพิ่มเติมเกี่ยวกับวิธีนี้ได้ไหม?
Ted Betz

1
keytool สามารถพบได้ในไดเรกทอรี bin ของ JDK (ระบบปฏิบัติการใด ๆ ) ฉันมักจะเพิ่มไดเรกทอรีช่องเก็บนี้ในเส้นทางของฉันดังนั้นข้างต้นจะทำงานได้จากทุกที่ คุณสามารถค้นหาไดเรกทอรีถัง JDK ของคุณและเพิ่มลงใน PATH ของคุณหรือคุณสามารถใส่ชื่อพา ธ เต็มไปยัง keytool ในบรรทัดคำสั่ง
Dave MacLean

1
ตามที่ผู้แสดงความคิดเห็นคนอื่น ๆ ชี้ให้เห็น Google ดูเหมือนว่าจะขยายระยะเวลาเริ่มต้นของใบรับรองการแก้ไขข้อผิดพลาดดังนั้นการลบไฟล์ debug.keystore และการทำ clean / build นั้นง่ายกว่ามาก
Dave MacLean

81

ใน Vista สิ่งนี้ได้ผล:

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

  2. ECLIPSE: ในโครงการทำความสะอาดโครงการ ปิด Eclipse เปิด Eclipse อีกครั้ง

  3. คราส: เริ่มต้นโปรแกรมจำลอง ลบแอปพลิเคชันจากตัวจำลอง

คุณดีไปแล้ว

ฉันค่อนข้างกังวลเมื่อฉันพูดข้อผิดพลาดนั้น แต่ฉันแก้ไขจากการอ่านที่นี่และเล่นเป็นเวลา 10 นาที


68
  • WINDOWS

ลบ: debug.keystore ตั้งอยู่ใน C:\Documents and Settings\\[user]\.androidทำความสะอาดและสร้างโครงการของคุณ

  • Windows 7 ไปที่C:\Users\[username]\.androidและลบไฟล์ debug.keystore

ทำความสะอาดและสร้างโครงการของคุณ

  • MAC

ลบที่เก็บคีย์ของคุณที่อยู่ใน~/.android/debug.keystoreClean และสร้างโครงการของคุณ

ในตัวเลือกทั้งหมดหากคุณไม่สามารถรับ debug.keystore ใหม่เพียงรีสตาร์ท eclipse


56

ใน Windows 7 มันเป็นเส้นทาง

C:\Users\[username]\.android
  • ข้ามเส้นทางนี้และนำออก debug.keystore
  • ทำความสะอาดและสร้างโครงการของคุณ

41

หากใบรับรองหมดอายุในระหว่างการดีบักโครงการคุณต้องทำการถอนการติดตั้งด้วยตนเอง :

กรุณาดำเนินการ adb uninstall <package_name>ในเปลือก


38

บน Mac ให้เปิด Terminal (ไดเรกทอรีผู้ใช้ปัจจุบันควรเปิด), cd ".android" ("ls" เพื่อตรวจสอบ debug.keystore ที่นั่น) ในที่สุด "rm debug.keystore" เพื่อลบไฟล์


36

Android SDK สร้างใบรับรองการลงนาม "debug" ให้คุณในที่เก็บคีย์ที่เรียกว่าdebug.keystoreปลั๊กอิน Eclipse ใช้ใบรับรองนี้เพื่อลงนามในแต่ละบิลด์แอปพลิเคชันที่สร้างขึ้น

น่าเสียดายที่ใบรับรองการดีบักใช้ได้เพียง 365 วันเท่านั้น ในการสร้างไฟล์ใหม่คุณต้องลบdebug.keystoreไฟล์ที่มีอยู่ ตำแหน่งขึ้นอยู่กับแพลตฟอร์ม - คุณสามารถค้นหาได้ในการตั้งค่า -> Android -> Build -> * ที่เก็บคีย์การดีบักดีฟอลต์

หากคุณใช้ Windows ให้ทำตามขั้นตอนด้านล่าง

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

Eclipse: ในโครงการทำความสะอาดโครงการ ปิด Eclipse เปิด Eclipse อีกครั้ง

Eclipse: เริ่มต้นโปรแกรมจำลอง ลบแอปพลิเคชันจากตัวจำลอง

หากคุณใช้ Linux หรือ Mac ให้ทำตามขั้นตอนด้านล่าง

ลบออกdebug.keystoreจาก.androidโฟลเดอร์ด้วยตนเอง

คุณสามารถค้นหา.androidโฟลเดอร์ดังนี้:home/username/.android

หมายเหตุ: .androidไฟล์เริ่มต้นจะถูกซ่อนไว้

ดังนั้นคลิกที่เมนูสถานที่ ภายใต้โฟลเดอร์บ้านที่เลือก ภายใต้คลิกที่มุมมองภายใต้คลิกแสดงไฟล์ที่ซ่อนอยู่จากนั้น.androidโฟลเดอร์จะปรากฏให้เห็น

ลบจากdebug.keystore.android folder

จากนั้นทำความสะอาดโครงการของคุณ ตอนนี้ Android จะสร้าง.android folderไฟล์ใหม่


34

ฉันมีปัญหานี้สองสามสัปดาห์ที่ผ่านมา ฉันลองแก้ไขปัญหาในเว็บไซต์นักพัฒนา Android เป็นครั้งแรกแต่ไม่มีโชค หลังจากนั้นฉันติดตั้ง Android SDK ใหม่ซึ่งแก้ไขปัญหาของฉัน


33

อืมม น่าสนใจว่าผู้คนจำนวนมากมีประสบการณ์แตกต่างกันเล็กน้อยในเรื่องนี้ ฉันจำได้ว่าวันนี้ถือว่าเป็นสัญญาณว่าซอฟต์แวร์ยังไม่พร้อมสำหรับการเปิดตัวและทีมจะแก้ไขได้จริงก่อนที่ผู้ใช้จะเริ่มเห็นปัญหาเหล่านี้ :(

ประสบการณ์ของฉันแตกต่างกันเล็กน้อย ฉันได้ลองใช้โครงการ> ล้างแล้ว แต่ยังคงมีความล้มเหลวในการสร้างเดียวกัน จากนั้นฉันลบ debug.keystore (ภายใต้. android) เช่นเดียวกับคำตอบแรกที่กล่าว ยังคงมีปัญหาเดียวกัน จากนั้นฉันทำความสะอาดอีกครั้งและสงสัยในสิ่งมหัศจรรย์มันได้ผล!

ตอนนี้อย่าเข้าใจฉันผิดฉันดีใจที่ฉันทำงานได้ด้วยคำแนะนำในชุดข้อความนี้ แต่เห็นได้ชัดว่าการทำความสะอาดไม่ถูกต้องและวิธีการหาคีย์ที่หมดอายุหลังจากที่ฉันลบที่เก็บคีย์ ??? เห็นได้ชัดว่ามีบางอย่างผิดปกติกับ Eclipse หรือ ADT - ไม่แน่ใจ


Eclipse มีแนวโน้มที่จะแคชไฟล์ดังนั้นบางครั้งจำเป็นต้องมีการล้าง / รีเฟรชเพื่อแจ้งให้ทราบว่ามีการเปลี่ยนแปลงไฟล์บนดิสก์
navjotk

33

บน Ubuntu สิ่งนี้ได้ผล:

ผมไปhome/username/.androidและฉันเปลี่ยนไปkeystore.debug keystoreold.debugจากนั้นฉันปิด Eclipse เริ่ม Eclipse และ SDK สร้างใบรับรองใหม่keystore.debugในโฟลเดอร์นั้น

จากนั้นคุณต้องถอนการติดตั้ง / ติดตั้งแอพที่ติดตั้งใหม่ผ่าน USB Debugging หรือ APK ที่ไม่ได้ลงนาม ("unsigned" APK = เซ็นชื่อด้วยใบรับรองการแก้ไขข้อบกพร่อง)


14

สำหรับ windows xp ไปที่C:\Documents and Settings\%userprofile%\.androidและลบไฟล์debug.keystoreให้รีสตาร์ท eclipse และตอนนี้โปรเจ็กต์ของคุณจะได้รับบิลด์โดยไม่มีข้อผิดพลาด

เส้นทางตัวอย่าง:

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

อ่านที่นี่สำหรับเพิ่มเติม


13

ในdebug.keystoreไฟล์Windows เป็น localtes ที่C:\Users\%Username%\.androidโฟลเดอร์ ไฟล์นี้ถูกสร้างขึ้นเมื่อคุณติดตั้ง Android SDK และใช้งานได้เพียงปีเดียวเท่านั้น หลังจาก perod นี้คุณจะเริ่มได้รับข้อผิดพลาดError getting final archive: Debug certificate expired on xx/xx/xxxxนี้

ในการลบข้อผิดพลาดนี้เพียงแค่ลบไฟล์และเรียกใช้โปรแกรมอีกครั้ง ใน Eclipse ของฉันฉันได้เปิดใช้งานProject->Build Automaticallyเพื่อให้ทำงานได้โดยตรง แต่ในกรณีที่คุณปิดการใช้งานคุณจะต้องทำความสะอาดโครงการProject->Clean.. เลือกโครงการของคุณและกดตกลง จากนั้นคุณจะต้องสร้างมันเอง คลิกที่ 3 ในโครงการของคุณและเลือกBuild project(หมายเหตุ - คุณจะเห็นตัวเลือกนี้เฉพาะเมื่อคุณสร้างคุณสมบัติ diabled โดยอัตโนมัติในเมนูโครงการของคุณ)


13

ก่อนปิดคราสแล้ว

เปิด CMD โดย Window Key + Rหรือผ่านRun as Admin

ทำตามขั้นตอนต่อไปนี้

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

หลังจากรีสตาร์ทคราสนี้


7

หลังจากที่คุณติดตั้งAndroid SDK in Eclipseจะสร้างใบรับรองการลงนามแก้ปัญหาสำหรับคุณในkeystoreเรียกdebug.keystore ปลั๊กอิน Eclipse ใช้ใบรับรองนี้เพื่อลงนามแต่ละบิลด์แอ็พพลิเคชันที่สร้างขึ้น

ตอนนี้ปัญหาเกี่ยวกับใบรับรองการแก้ปัญหานี้คือมันใช้งานได้เพียงปีเดียวหรือ 365 วัน If your Eclipse IDE uses an expired debug certificate, you will not be able to create and/or deploy an Android app.

เพื่อแก้ไขปัญหานี้สิ่งที่คุณต้องทำคือลบไฟล์debug.keystore

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

ที่นั่นคุณจะเห็นโฟลเดอร์ที่ไฟล์นั้นอยู่ เพียงแค่ลบไฟล์นั้นและคุณจะไปดี

สำหรับข้อมูลเพิ่มเติม คุณสามารถเยี่ยมชม

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


0

เพื่อแก้ไขปัญหานี้เพียงแค่ลบไฟล์ debug.keystore

ตำแหน่งที่เก็บข้อมูลเริ่มต้นสำหรับ AVD คือ

ใน ~ / .android / บน OS X และ Linux

ใน C: \ Documents and Settings \ .android \ บน Windows XP

ใน C: \ Users \ .android \ บน Windows Vista และ Windows 7

ดูลิงค์นี้ด้วยซึ่งจะมีประโยชน์

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.