Android Studio - kho khóa gỡ lỗi


107

Android Studio có ký bản dựng gỡ lỗi không? Nếu vậy, kho khóa mà nó sử dụng để làm điều đó ở đâu?


1
Nó vẫn ký vì chỉ những bản dựng đã ký mới có thể được cài đặt.
Alexander Kulyakhtin

3
Tôi nghĩ rằng đây là một câu hỏi lập trình hợp lệ. Nó liên quan trực tiếp đến chuỗi công cụ được sử dụng khi phát triển ứng dụng Android.
Austyn Mahoney


@Prachi sao đây có thể là bản sao của một câu hỏi được hỏi hơn 3 năm sau? Có thể nó là một bản sao khác của cái này.
nhanh

Câu trả lời:


179

Nó ở cùng một vị trí: ~/.android/debug.keystore


5
Thay vào đó không phải là ~ / .android sao?
Eugene Mymrin

14
keytool -list -v -keystore ~ / .android / debug.keystore
jturolla

5
Đây là phiên bản windows của lệnh keytool: keytool -exportcert -alias androiddebugkey -keystore C: \ Users \ <User> \ .android \ debug.keystore -list -v
Simon

12
Mật khẩu mặc định là "android" và bí danh chính là "androiddebugkey".
naXa

1
Và mật khẩu mặc định cho androiddebugkey cũng là "android".
kibitzerCZ

64

Nếu bạn sử dụng Windows, có thể vị trí như sau:

C: \ User \ YourUser \ .android \ debug.keystore


30

Bạn có thể chỉ định kho khóa gỡ lỗi của riêng mình nếu muốn. Giải pháp này cũng cung cấp cho bạn khả năng lưu trữ các khóa của bạn bên ngoài thư mục dự án cũng như tận hưởng sự tự động hóa trong quá trình ký kết. Có, bạn có thể truy cập File -> Project Structurevà gán kho khóa ký và mật khẩu trong Signingtab nhưng điều đó sẽ đưa các mục nhập văn bản rõ vào tệp gradle.build của bạn, điều đó có nghĩa là bí mật của bạn có thể bị tiết lộ (đặc biệt là trong các cam kết trong kho lưu trữ). Với giải pháp này, bạn có quyền kiểm soát việc sử dụng kho khóa của riêng mình và sự kỳ diệu của tự động hóa trong quá trình gỡ lỗi và phát hành các bản dựng.

1) Tạo một gradle.properties (nếu bạn chưa có).

Vị trí cho tệp này phụ thuộc vào hệ điều hành của bạn:

   /home/<username>/.gradle/ (Linux)
   /Users/<username>/.gradle/ (Mac)
   C:\Users\<username>\.gradle (Windows)

2) Thêm mục nhập trỏ đến yourprojectname.propertiestệp. (ví dụ cho Windows)

yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties

3) Tạo yourprojectname.propertiestệp ở vị trí bạn đã chỉ định trong Bước 2 với thông tin sau:

keystore=C:\\path\\to\\keystore\\yourapps.keystore
keystore.password=your_secret_password

4) Sửa đổi gradle.buildtệp của bạn để trỏ tới yourprojectname.propertiestệp để sử dụng các biến.

if(project.hasProperty("yourprojectname.properties")
        && new File(project.property("yourprojectname.properties")).exists()) {

    Properties props = new Properties()
    props.load(new FileInputStream(file(project.property("yourprojectname.properties"))))

    android {
        signingConfigs {
            release {
                keyAlias 'release'
                keyPassword props['keystore.password']
                storeFile file(props['keystore'])
                storePassword props['keystore.password']
            }
            debug {
                keyAlias 'debug'
                keyPassword props['keystore.password']
                storeFile file(props['keystore'])
                storePassword props['keystore.password']
            }
        }
        compileSdkVersion 19
        buildToolsVersion "20.0.0"
        defaultConfig {
            applicationId "your.project.app"
            minSdkVersion 16
            targetSdkVersion 17
        }
        buildTypes {
            release {
            }
        }
    }

}

dependencies {
    ...
}

5) Tận hưởng! Bây giờ tất cả các khóa của bạn sẽ nằm ngoài thư mục gốc và bạn vẫn có được niềm vui tự động hóa cho mỗi bản dựng.

Nếu bạn gặp lỗi trong tệp gradle.build về biến "props" thì đó là do bạn không thực thi khối "android {}" bên trong ifđiều kiện đầu tiên mà propsbiến được gán, vì vậy chỉ cần di chuyển toàn bộ android {... } vào điều kiện trong đó biến đạo cụ được chỉ định rồi thử lại.

Tôi nối các bước này lại với nhau từ thông tin tìm thấy ở đâyở đây .


1
Về "2) Thêm mục ...". Thêm một mục vào đâu?
VikingGlen

yêu thích ý tưởng xây dựng tự động hóa
Khurram Shehzad

Cảm ơn, đây là một cách tuyệt vời để giữ mật khẩu sản xuất bên ngoài kiểm soát nguồn (vì vậy chúng không có sẵn cho tất cả các nhà phát triển)!
sham

15

Đường dẫn tệp debug.keystore của Android Studio phụ thuộc vào biến môi trường ANDROID_SDK_HOME.

Nếu ANDROID_SDK_HOME được xác định, thì tệp được đặt trong thư mục con của SDK có tên .android .
Khi không được xác định, kho khóa được đặt tại đường dẫn trang chủ của người dùng trong cùng một thư mục con:
- % HOMEPATH% \. Android \ trên Windows
- $ HOME / .android / trên Linux


1
Bạn có thể vui lòng giải thích thêm câu trả lời của mình bằng cách thêm một chút mô tả về giải pháp bạn cung cấp không?
abarisone

tại sao 87 người nghĩ rằng nó nằm trong ~ / .android / debug.keystore, tất cả đều không có biến môi trường có tên "ANDROID_SDK_HOME" ???
IloveIniesta

Điều này rất hữu ích. Cảm ơn rất nhiều
Rahul

4

Đây là cách cuối cùng tôi đã tạo tệp ~ / .android / debug.keystore.

Đầu tiên một số nền tảng. Tôi có một máy tính xách tay du lịch mới. Đã cài đặt Android Studio. Đã nhân bản dự án Android của tôi từ git hub. Dự án sẽ không chạy. Cuối cùng phát hiện ra rằng debug.keystore chưa được tạo ... và tôi không thể tìm ra cách để Android Studio tạo nó.

Cuối cùng, tôi đã tạo một dự án trống mới ... và điều đó đã tạo debug.keystore!

Hy vọng điều này sẽ giúp những người khác có vấn đề này.


1

Trên Mac, bạn sẽ tìm thấy nó ở đây: /Users/$username/.android


1

Nếu bạn sử dụng Windows, bạn sẽ thấy nó theo sau: Tệp -> Cấu trúc dự án -> Các khía cạnh

đã chọn dự án Android của bạn và trong cửa sổ "Facet 'Android" "nhấp vào TAB" Đóng gói ", bạn sẽ tìm thấy thứ mình muốn


2
Không có menu nào như là 'Facets'
IgorGanapolsky Ngày
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.