Chứng chỉ Debug đã hết hạn Lỗi trong các plugin Android Eclipse


1898

Tôi đang sử dụng các trình cắm Android của Eclipse để xây dựng một dự án, nhưng tôi gặp lỗi này trong cửa sổ giao diện điều khiển:

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

Làm thế nào để tôi sửa nó?


8
Ai đó có thể cho biết tại sao điều này xảy ra?
Matical

2
Ngày hệ thống của bạn có thay đổi không, gây ra chứng chỉ hợp lệ 25 năm (như được đề xuất trong khi ký đơn). Nó không phải là sự kiện hơn 5 tuổi cụ thể
Trikaldarshi

Bạn cần tạo kho khóa mới
bynu022

Câu trả lời:


2241

Xóa chứng chỉ gỡ lỗi của bạn ~/.android/debug.keystoretrên Linux và Mac OS X ; thư mục giống như %USERPROFILE%/.androidtrên Windows .

Sau đó, trình cắm thêm Eclipse sẽ tạo ra một chứng chỉ mới khi bạn cố gắng xây dựng gói gỡ lỗi tiếp theo. Bạn có thể cần phải dọn dẹp và sau đó xây dựng để tạo chứng chỉ.


13
Trên Windows, tôi đã phải xóa debug.keystore và thực hiện một số thay đổi để có một trình biên dịch mới. Tôi đã tạo một dự án thử nghiệm mới và debug.keystore mới đã được tạo.
Tomas

117
Nó cũng sẽ được tạo lại cho dự án hiện tại nếu bạn 'dọn dẹp' dự án (đi đến Dự án -> Làm sạch ...)
adamnfish

11
Hiện tại có một vấn đề theo dõi lỗi yêu cầu sửa lỗi này. Hãy bỏ phiếu cho nó. code.google.com/p/android/issues/detail?id=15370
Manfred Moser

61
Clean không khắc phục được sự cố cho tôi, tôi cần phải rm ~ / .android / debug.keystore bằng tay.
James Moore

3
@James Xóa kho khóa bằng tay là phần đầu tiên của câu trả lời ở trên. Làm sạch dự án (hoặc xây dựng lại) là những gì bạn cần làm để tạo một kho khóa mới.
Christopher Orr

334

Sau khi cài đặt, SDK Android tạo debugchứng chỉ ký cho bạn trong kho khóa được gọi debug.keystore. Trình cắm thêm Eclipse sử dụng chứng chỉ này để ký mỗi bản dựng ứng dụng được tạo.

Thật không may, một chứng chỉ gỡ lỗi chỉ có hiệu lực trong 365 ngày. Để tạo một cái mới, bạn phải xóa debug.keystoretệp hiện có . Vị trí của nó phụ thuộc vào nền tảng - bạn có thể tìm thấy nó trong Tùy chọn - Android - Xây dựng - Kho khóa gỡ lỗi mặc định .


23
Thay đổi để tạo mặc định 30 năm đã được chấp nhận vào ngày 6 tháng 4 năm 2011: review.source.android.com/#change,22128
James Moore

Nếu bạn xóa debug.keystore, bạn sẽ cập nhật ứng dụng của mình như thế nào?
dùng739375

6
@ user739375, debug.keystore chỉ được sử dụng để gỡ lỗi, một chứng chỉ riêng được sử dụng để "sản xuất".
Teo Klestrup Röijezon

@JamesMoore Tôi thực sự ngạc nhiên khi chứng chỉ đó bao nhiêu tuổi
Trikaldarshi

254

Thật khó khăn khi phải xóa tất cả các tệp .apk phát triển của bạn, vì chứng chỉ mới không khớp nên bạn không thể nâng cấp chúng trong tất cả các AVD của mình. Bạn phải nhận được một khóa MAP-API phát triển khác. Có một giải pháp khác.

Bạn có thể tạo chứng chỉ gỡ lỗi của riêng mình debug.keystorevới bất kỳ hạn sử dụng nào bạn muốn. Làm điều này trong .androidthư mục dưới thư mục của bạn HOME:

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

keytool.execó thể được tìm thấy trong thư mục bin JDK (ví dụ: C:\Program Files\Java\jdk1.6.0_31\bin\trên Windows).

ADT đặt tên và họ trên chứng chỉ là "Gỡ lỗi Android", đơn vị tổ chức là "Android" và mã quốc gia gồm hai chữ cái là "US". Bạn có thể để các giá trị của tổ chức, thành phố và trạng thái là "Không xác định". Ví dụ này sử dụng hiệu lực của 14000 ngày. Bạn có thể sử dụng bất cứ giá trị nào bạn thích.


3
Tôi thích điều này bởi vì nó cung cấp một bản sửa lỗi dài hạn hơn cho đến khi SDK cung cấp một cách tốt hơn để xử lý chứng chỉ hết hạn.
Sean Aitken

23
Tôi thích điều này bởi vì tôi không cần phải sử dụng nhật thực.
MattK

Tôi giả định rằng điều này sẽ được gõ dưới dòng lệnh. Nếu vậy, tôi nhận được lỗi "keytool không được nhận dạng". Bạn có thể giải thích thêm về phương pháp này?
Ted Betz

1
keytool có thể được tìm thấy trong thư mục bin của JDK (bất kỳ HĐH nào). Tôi thường thêm thư mục bin này vào PATH của mình để ở trên sẽ hoạt động ở mọi nơi. Bạn có thể tìm thấy thư mục bin JDK của mình và thêm nó vào PATH của bạn hoặc bạn có thể đặt tên đường dẫn đầy đủ vào keytool trên dòng lệnh.
Dave MacLean

1
Như các nhà bình luận khác đã chỉ ra, Google dường như đã kéo dài thời lượng mặc định của chứng chỉ gỡ lỗi nên việc xóa tệp debug.keystore và thực hiện dọn dẹp / xây dựng dễ dàng hơn nhiều.
Dave MacLean

81

Trên Vista, điều này đã làm việc:

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

  2. ECLIPSE: Trong Dự án, Làm sạch dự án. Đóng Eclipse. Mở lại Eclipse.

  3. ECLIPSE: Bắt đầu Trình giả lập. Gỡ bỏ ứng dụng khỏi trình giả lập.

Bạn tốt để đi.

Tôi đã khá lo lắng khi tôi nói lỗi đó, nhưng tôi đã sửa nó từ việc đọc ở đây và chơi xung quanh trong 10 phút.


68
  • CÁC CỬA SỔ

Xóa: debug.keystore nằm trong C:\Documents and Settings\\[user]\.android, Làm sạch và xây dựng dự án của bạn.

  • Windows 7 đi đến C:\Users\[username]\.androidvà xóa tệp debug.keystore.

Làm sạch và xây dựng dự án của bạn.

  • MAC

Xóa kho khóa của bạn nằm trong ~/.android/debug.keystoreClean và xây dựng dự án của bạn.

Trong tất cả các tùy chọn, nếu bạn có thể, hãy lấy debug.keystore mới chỉ cần khởi động lại nhật thực.


56

Trong Windows 7, nó nằm ở đường dẫn

C:\Users\[username]\.android
  • đi đường này và loại bỏ debug.keystore
  • làm sạch và xây dựng dự án của bạn.

41

Nếu chứng chỉ hết hạn ở giữa quá trình gỡ lỗi dự án, bạn phải thực hiện gỡ cài đặt thủ công :

Hãy thực hiện adb uninstall <package_name>trong một vỏ.


38

Trên máy Mac, hãy mở Terminal (thư mục người dùng hiện tại sẽ mở), cd ".android" ("ls" để xác thực debug.keystore ở đó). Cuối cùng "rm debug.keystore" để xóa tệp.


36

SDK Android tạo chứng chỉ ký "gỡ lỗi" cho bạn trong kho lưu trữ khóa có tên debug.keystore. Trình cắm thêm Eclipse sử dụng chứng chỉ này để ký từng bản dựng ứng dụng được tạo.

Thật không may, một chứng chỉ gỡ lỗi chỉ có hiệu lực trong 365 ngày. Để tạo một cái mới, bạn phải xóa debug.keystoretệp hiện có . Vị trí của nó phụ thuộc vào nền tảng - bạn có thể tìm thấy nó trong Tùy chọn -> Android -> Xây dựng -> * Kho khóa gỡ lỗi mặc định.

Nếu bạn đang sử dụng Windows, hãy làm theo các bước dưới đây.

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

Nhật thực: Trong dự án, Làm sạch dự án. Đóng Eclipse. Mở lại Eclipse.

Nhật thực: Bắt đầu Trình mô phỏng. Gỡ bỏ ứng dụng khỏi trình giả lập.

Nếu bạn đang sử dụng Linux hoặc Mac, hãy làm theo các bước dưới đây.

Xóa thủ công debug.keystorekhỏi .androidthư mục.

Bạn có thể tìm thấy .androidthư mục như thế này:home/username/.android

Lưu ý: .androidtập tin mặc định sẽ bị ẩn.

Vì vậy, nhấp vào menu địa điểm. Dưới chọn thư mục nhà. Dưới bấm vào xem, dưới bấm hiển thị các tập tin ẩn và sau đó .androidthư mục sẽ hiển thị.

Xóa debug.keystorekhỏi .android folder.

Sau đó làm sạch dự án của bạn. Bây giờ Android sẽ tạo một .android foldertệp mới .


34

Tôi đã có vấn đề này vài tuần trước. Lần đầu tiên tôi đã thử khắc phục sự cố trên trang web dành cho nhà phát triển Android, nhưng không gặp may. Sau đó, tôi đã cài đặt lại SDK Android, giải quyết vấn đề của tôi.


33

Hừm. Thật thú vị khi nhiều người đã có những trải nghiệm hơi khác nhau với điều này. Tôi nhớ những ngày mà đây được coi là một dấu hiệu cho thấy phần mềm chưa sẵn sàng để phát hành và nhóm thực sự sẽ sửa nó TRƯỚC KHI người dùng bắt đầu thấy những vấn đề này :(

Kinh nghiệm của riêng tôi chỉ là một chút khác biệt. Tôi đã thử Project> Clean, nhưng vẫn gặp lỗi xây dựng tương tự. Sau đó, tôi đã xóa debug.keystore (dưới .android) như câu trả lời đầu tiên đã nói. Vẫn có cùng một vấn đề. Sau đó, tôi đã làm sạch một lần nữa, và tự hỏi kỳ diệu, nó đã làm việc!

Bây giờ đừng hiểu sai ý tôi, tôi rất vui vì tôi đã làm cho nó hoạt động nhờ những gợi ý trong chủ đề này. Nhưng rõ ràng sạch sẽ không hoạt động đúng, và làm thế nào nó tìm thấy một khóa hết hạn sau khi tôi xóa kho khóa ??? Rõ ràng có điều gì đó không ổn với Eclipse hoặc ADT - không chắc chắn điều đó.


Eclipse có xu hướng lưu trữ các tệp, vì vậy đôi khi cần phải làm sạch / làm mới để cho nó biết rằng tệp đã thay đổi trên đĩa.
navjotk

33

Trên Ubuntu, điều này đã làm việc:

Tôi đã đến home/username/.androidvà tôi đổi tên keystore.debugđể keystoreold.debug. Sau đó tôi đã đóng Eclipse, khởi động Eclipse và SDK đã tạo chứng chỉ mới keystore.debugtrong thư mục đó.

Sau đó, bạn phải gỡ cài đặt / cài đặt lại các ứng dụng bạn đã cài đặt qua Gỡ lỗi USB hoặc APK không dấu (APK "không dấu" = đã ký với chứng chỉ gỡ lỗi).


14

Đối với windows xp, hãy truy cập C:\Documents and Settings\%userprofile%\.androidvà xóa tệp debug.keystore , khởi động lại nhật thực và bây giờ dự án của bạn được xây dựng mà không gặp lỗi.

Đường dẫn ví dụ:

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

read-đây-cho-hơn .


13

Trong debug.keystoretập tin Windows là localtes tại C:\Users\%Username%\.androidthư mục. Tập tin này được tạo khi bạn cài đặt SDK Android của mình và chỉ có hiệu lực trong một năm. Sau khi perod này, bạn sẽ bắt đầu nhận được lỗi này Error getting final archive: Debug certificate expired on xx/xx/xxxx.

Để xóa lỗi này, chỉ cần xóa tệp và chạy lại chương trình. Trong Eclipse của tôi, tôi đã kích hoạt Project->Build Automaticallyđể nó hoạt động trực tiếp nhưng trong trường hợp bạn đã tắt nó, bạn sẽ cần phải làm sạch dự án Project->Clean.. chọn dự án của bạn và nhấn ok. Sau đó, bạn sẽ cần phải xây dựng nó bằng tay. Nhấp chuột vào dự án thứ 3 của bạn và chọn Build project. (Lưu ý - Bạn sẽ chỉ thấy tùy chọn này nếu bạn có tính năng Build Automatic được cắt xén trong Menu dự án của bạn)


13

Đầu tiên đóng nhật thực sau đó

Mở CMD bằng Window Key + R hoặc thông qua Run as Admin

Theo các bước sau

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

sau khi nhật thực khởi động lại.


7

Sau khi bạn cài đặt Android SDK in Eclipse, nó sẽ tạo chứng chỉ ký gỡ lỗi cho bạn trong kho khóa có tên là debug.keystore . Trình cắm thêm Eclipse sử dụng chứng chỉ này để ký mỗi bản dựng ứng dụng được tạo.

Bây giờ, vấn đề với chứng chỉ gỡ lỗi này là nó chỉ có hiệu lực trong một năm hoặc 365 ngày. If your Eclipse IDE uses an expired debug certificate, you will not be able to create and/or deploy an Android app.

Để khắc phục vấn đề này, tất cả những gì bạn cần làm là xóa tệp debug.keystore .

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

Ở đó bạn sẽ thấy thư mục chứa tập tin. Đơn giản chỉ cần xóa tập tin đó và bạn tốt để đi.

Để biết thêm thông tin. bạn có thể thăm

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


0

Để khắc phục sự cố này, chỉ cần xóa tệp debug.keystore.

Vị trí lưu trữ mặc định cho AVD là

Trong ~ / .android / trên OS X và Linux.

Trong C: \ Documents and Settings \ .android \ trên Windows XP

Trong C: \ Users \ .android \ trên Windows Vista và Windows 7.

Cũng xem liên kết này, có thể hữu ích.

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.