Các bước để tạo một kho khóa cho Android là gì?
Tôi cần sử dụng google maps trong ứng dụng của mình và tôi không biết mình đã bỏ lỡ những bước nào. Vui lòng cung cấp cho tôi các bước chi tiết cụ thể (tôi không hiểu nó từ hướng dẫn).
Các bước để tạo một kho khóa cho Android là gì?
Tôi cần sử dụng google maps trong ứng dụng của mình và tôi không biết mình đã bỏ lỡ những bước nào. Vui lòng cung cấp cho tôi các bước chi tiết cụ thể (tôi không hiểu nó từ hướng dẫn).
Câu trả lời:
Để trả lời câu hỏi trong tiêu đề, bạn tạo một kho lưu trữ khóa với tiện ích Java Keytool đi kèm với bất kỳ phân phối JDK tiêu chuẩn nào và có thể được đặt tại %JAVA_HOME%\bin
. Trên Windows, điều này thường là như vậy C:\Program Files\Java\jre7\bin
.
Vì vậy, trên Windows, mở một cửa sổ lệnh và chuyển sang thư mục đó và nhập một lệnh như thế này
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Keytool nhắc bạn cung cấp mật khẩu cho kho khóa, cung cấp các trường Tên khác biệt và sau đó là mật khẩu cho khóa của bạn. Sau đó, nó tạo kho khóa dưới dạng một tệp có tên my-release-key.keystore trong thư mục bạn đang ở. Kho khóa và khóa được bảo vệ bởi mật khẩu bạn đã nhập. Kho khóa chứa một khóa duy nhất, có giá trị trong 10000 ngày. Bí danh là một tên mà bạn - sẽ sử dụng sau này, để tham khảo kho khóa này khi ký ứng dụng của bạn.
Để biết thêm thông tin về Keytool, hãy xem tài liệu tại: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
và để biết thêm thông tin về việc ký các ứng dụng Android tại đây: http://developer.android.com/tools/publishing/app-signing.html
keytool -genkey -v -keystore debug.keystore -storepass android -alias android -keypass android -keyalg RSA -keysize 2048 -validity 10000
. Sau đó, để tạo SHA-1 mà bạn cần đặt trong Firebase, hãy thực hiện:keytool -list -v -keystore debug.keystore -alias android -storepass android -keypass android
Để đăng nhập ứng dụng của bạn ở chế độ phát hành trong Android Studio, hãy làm theo các bước sau:
1- Trên thanh menu, nhấp Build> Tạo APK đã ký.
2-Trên cửa sổ Tạo Trình hướng dẫn APK đã ký, bấm Tạo mới để tạo kho khóa mới. Nếu bạn đã có một kho khóa, hãy đến bước 4.
3- Trên cửa sổ Cửa hàng khóa mới, cung cấp thông tin bắt buộc như trong hình Khóa của bạn phải có giá trị ít nhất 25 năm, để bạn có thể ký các bản cập nhật ứng dụng với cùng khóa thông qua tuổi thọ của ứng dụng.
4- Trên cửa sổ Tạo Trình hướng dẫn APK đã ký, chọn kho khóa, khóa riêng và nhập mật khẩu cho cả hai. Sau đó bấm vào Tiếp theo.
5- Trên cửa sổ tiếp theo, chọn điểm đến cho APK đã ký và nhấp vào Kết thúc.
http://developer.android.com/tools/publishing/app-signing.html
Tôi đã điên tìm cách để tạo ra một .keystore sử dụng trong vỏ một dòng lệnh đơn , vì vậy tôi có thể chạy nó từ một ứng dụng khác. Đây là cách:
echo y | keytool -genkeypair -dname "cn=Mark Jones, ou=JavaSoft, o=Sun, c=US" -alias business -keypass kpi135 -keystore /working/android.keystore -storepass ab987c -validity 20000
dname là một định danh duy nhất cho ứng dụng trong .keystore
bí danh Định danh của ứng dụng dưới dạng một thực thể duy nhất bên trong .keystore (nó có thể có nhiều)
.ks
)Nó hoạt động thực sự tốt đối với tôi, nó không yêu cầu bất cứ điều gì khác trong bảng điều khiển, chỉ tạo tệp. Để biết thêm thông tin, xem keytool - Công cụ quản lý khóa và chứng chỉ .
/path/file.keystore
và chỉ ra rằng với tham số storepass.
jks
là phần mở rộng kho khóa chính thức cho java nói chung, tuy nhiên, đây keystore
là phần mở rộng được khuyến nghị sử dụng cho các ứng dụng Android thay thế.
Tạo tệp kho khóa từ dòng lệnh:
Dòng lệnh mở:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved
// (if you want to store keystore file at C:/ open command line with RUN AS ADMINISTRATOR)
C:\Windows\system32> keytool -genkey -v -keystore [your keystore file path]{C:/index.keystore} -alias [your_alias_name]{index} -keyalg RSA -keysize 2048 -validity 10000[in days]
Enter> Nó sẽ nhắc bạn nhập mật khẩu> nhập mật khẩu (nó sẽ ẩn)
Enter keystore password:
Re-enter new password:
Nhập> Nó sẽ hỏi chi tiết của bạn.
What is your first and last name?
[Unknown]: {AB} // [Your Name / Name of Signer]
What is the name of your organizational unit?
[Unknown]: {Self} // [Your Unit Name]
What is the name of your organization?
[Unknown]: {Self} // [Your Organization Name]
What is the name of your City or Locality?
[Unknown]: {INDORE} // [Your City Name]
What is the name of your State or Province?
[Unknown]: {MP} //[Your State]
What is the two-letter country code for this unit?
[Unknown]: 91
Nhập> Nhập Y
Is CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91 correct?
[no]: Y
Nhập> Nhập lại mật khẩu.
Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days
for: CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91
Enter key password for <index> (RETURN if same as keystore password):
Re-enter new password:
[Lưu trữ C: /index.keystore]
Xuất gói Android của bạn sang .apk với tệp kho khóa đã tạo của bạn
Nhấp chuột phải vào Gói bạn muốn xuất và chọn xuất
Chọn Xuất ứng dụng Android> Tiếp theo
Kế tiếp
Chọn Sử dụng Kho khóa hiện có> Duyệt tệp .keystore> nhập mật khẩu> Tiếp theo
Tạo kho khóa [.keystore/.jks]
trong studio ...
Nhấp vào Xây dựng (ALT + B) > Tạo APK đã ký ...
Nhấp vào Tạo mới .. (ALT + C)
Duyệt đường dẫn lưu trữ khóa (SHIFT + ENTER)> Chọn đường dẫn> Nhập tên> OK
Điền chi tiết về .jks/keystore
tập tin
của bạn
Kế tiếp
Tập tin của bạn
Nhập mật khẩu Studio Master (Bạn có thể đặt lại nếu bạn không biết) > OK
Chọn * Thư mục đích *> Kiểu xây dựng
release : for publish on app store
debug : for debugging your application
Nhấp vào Kết thúc
Làm xong !!!
Hướng dẫn này:
http://techdroid.kbeanie.com/2010/02/sign-your-android-appluggest-for.html
rất hữu ích cho tôi khi lần đầu tiên tôi phải tạo một kho khóa. Nó đơn giản nhưng các hướng dẫn trên developer.android.com hơi ngắn gọn.
Phần tôi không chắc chắn là lưu ở đâu và tên nào để cung cấp tệp kho khóa .
Tôi có vẻ như không quan trọng bạn đặt nó ở đâu chỉ cần đảm bảo giữ an toàn và giữ một số bản sao lưu. Tôi chỉ cần đặt nó trong thư mục ứng dụng của tôi
Đặt tên cho tệp là "Something.keystore" trong đó một cái gì đó có thể là bất cứ điều gì bạn muốn. Tôi đã sử dụng app_name.keystore , trong đó app_name là tên của ứng dụng của tôi.
Phần tiếp theo là những gì để đặt tên bí danh. Một lần nữa, điều đó dường như không quan trọng nên một lần nữa tôi lại sử dụng app_name . Giữ mật khẩu giống như bạn đã sử dụng trước đây. Điền vào phần còn lại của các lĩnh vực và bạn đã hoàn tất.
Tôi đã làm theo hướng dẫn này để tạo kho khóa gỡ lỗi.
Lệnh là:
keytool -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999
Điều đầu tiên cần biết là bạn đang ở chế độ Gỡ lỗi hoặc Phát hành. Từ trang web dành cho nhà phát triển "Có hai chế độ xây dựng: chế độ gỡ lỗi và chế độ phát hành. Bạn sử dụng chế độ gỡ lỗi khi bạn đang phát triển và thử nghiệm ứng dụng của mình. Bạn sử dụng chế độ phát hành khi bạn muốn xây dựng phiên bản phát hành của ứng dụng mà bạn có thể phân phối trực tiếp tới người dùng hoặc xuất bản trên một thị trường ứng dụng như Google Play. "
Nếu bạn đang ở chế độ gỡ lỗi, bạn làm như sau ...
A. Mở terminal và gõ:
keytool -exportcert -alias androiddebugkey -keystore path_to_debug_or_production_keystore -list -v
Lưu ý: Đối với Eclipse, kho khóa gỡ lỗi thường nằm ở ~ / .android / debug.keystore ...
B. khi được nhắc nhập mật khẩu, chỉ cần nhập "android" ...
C. Nếu bạn đang ở chế độ Phát hành, hãy làm theo hướng dẫn trên ...
http://developer.android.com/tools/publishing/app-signing.html <- liên kết này giải thích khá nhiều mọi thứ bạn cần biết.
Bạn có thể tạo kho khóa của mình bằng cách xuất APK đã ký. Khi bạn sẽ cố gắng xuất / xây dựng APK đã ký, nó sẽ yêu cầu kho khóa.
Bạn có thể chọn kho khóa hiện tại của mình hoặc bạn có thể dễ dàng tạo một kho khóa mới bằng cách nhấp vào tạo kho khóa mới
Ở đây một liên kết rất hữu ích và được giải thích rõ về cách tạo kho khóa của bạn và tạo APK đã ký
Liên kết này đã giải thích cách thực hiện với Android Studio, nhưng nếu tôi nhớ, nó khá giống trên Eclipse
COI CHỪNG
Khi bạn tạo kho khóa của mình, hãy giữ nó ở nơi an toàn vì bạn sẽ cần nó để tạo lại APK đã ký mới.
Tôi muốn đề xuất cách tự động chỉ với lớp
** Xác định ít nhất một tham số bổ sung cho kho khóa trong lệnh cuối cùng, ví dụ: country '-dname', 'c=RU'
**
apply plugin: 'com.android.application'
// define here sign properties
def sPassword = 'storePassword_here'
def kAlias = 'keyAlias_here'
def kPassword = 'keyPassword_here'
android {
...
signingConfigs {
release {
storeFile file("keystore/release.jks")
storePassword sPassword
keyAlias kAlias
keyPassword kPassword
}
}
buildTypes {
debug {
signingConfig signingConfigs.release
}
release {
shrinkResources true
minifyEnabled true
useProguard true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
...
}
...
task generateKeystore() {
exec {
workingDir projectDir
commandLine 'mkdir', '-p', 'keystore'
}
exec {
workingDir projectDir
commandLine 'rm', '-f', 'keystore/release.jks'
}
exec {
workingDir projectDir
commandLine 'keytool', '-genkey', '-noprompt', '-keystore', 'keystore/release.jks',
'-alias', kAlias, '-storepass', sPassword, '-keypass', kPassword, '-dname', 'c=RU',
'-keyalg', 'RSA', '-keysize', '2048', '-validity', '10000'
}
}
project.afterEvaluate {
preBuild.dependsOn generateKeystore
}
Điều này sẽ tạo kho khóa trên đồng bộ hóa và xây dựng dự án
> Task :app:generateKeystore UP-TO-DATE
> Task :app:preBuild UP-TO-DATE
Nếu bạn không muốn hoặc không thể sử dụng Android Studio, bạn có thể sử dụng công cụ NPM tạo kho khóa android:
$ create-android-keystore quick
Kết quả là một kho khóa mới được tạo trong thư mục hiện tại.
Thông tin thêm: https://www.npmjs.com/package/create-android-keystore