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?
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?
Câu trả lời:
Nó ở cùng một vị trí: ~/.android/debug.keystore
Nếu bạn sử dụng Windows, có thể vị trí như sau:
C: \ User \ YourUser \ .android \ debug.keystore
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 Structure
và gán kho khóa ký và mật khẩu trong Signing
tab 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.properties
tệp.
(ví dụ cho Windows)
yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties
3) Tạo yourprojectname.properties
tệ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.build
tệp của bạn để trỏ tới yourprojectname.properties
tệ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à props
biế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 và ở đây .
Đườ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
Đâ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.
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