ขั้นตอนในการสร้างที่เก็บคีย์สำหรับ Android คืออะไร
ฉันต้องใช้ Google Maps ในแอพของฉันและฉันไม่รู้ว่าฉันพลาดขั้นตอนใดไป โปรดระบุขั้นตอนอย่างละเอียดให้ฉัน (ฉันไม่เข้าใจจากคำแนะนำ)
ขั้นตอนในการสร้างที่เก็บคีย์สำหรับ Android คืออะไร
ฉันต้องใช้ Google Maps ในแอพของฉันและฉันไม่รู้ว่าฉันพลาดขั้นตอนใดไป โปรดระบุขั้นตอนอย่างละเอียดให้ฉัน (ฉันไม่เข้าใจจากคำแนะนำ)
คำตอบ:
ที่จะตอบคำถามในชื่อที่คุณสร้าง keystore กับสาธารณูปโภค Java Keytool ที่มาพร้อมกับการกระจาย JDK มาตรฐานใด ๆ %JAVA_HOME%\bin
และสามารถอยู่ใน บน Windows C:\Program Files\Java\jre7\bin
นี้มักจะเป็น
ดังนั้นใน Windows ให้เปิดหน้าต่างคำสั่งและสลับไปยังไดเรกทอรีนั้นแล้วป้อนคำสั่งเช่นนี้
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Keytool พร้อมท์ให้คุณระบุรหัสผ่านสำหรับที่เก็บคีย์ระบุฟิลด์ Distinguished Name จากนั้นรหัสผ่านสำหรับคีย์ของคุณ จากนั้นสร้างที่เก็บคีย์เป็นไฟล์ชื่อ my-release-key.keystore ในไดเร็กทอรีที่คุณเข้าสู่ keystore และคีย์ได้รับการป้องกันโดยรหัสผ่านที่คุณป้อน ที่เก็บคีย์มีคีย์เดียวใช้ได้สำหรับ 10000 วัน นามแฝงเป็นชื่อที่คุณจะใช้ในภายหลังเพื่ออ้างถึงที่เก็บคีย์นี้เมื่อลงชื่อแอ็พพลิเคชันของคุณ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Keytool โปรดดูเอกสารที่: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html
และสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการลงชื่อแอพ Android ไปที่นี่: 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
รหัสผ่านเพื่อให้คุณข้ามบางส่วนของคำแนะนำที่ปรากฏ: จากนั้นเพื่อสร้าง SHA-1 ที่คุณต้องใส่ใน Firebase ทำ:keytool -list -v -keystore debug.keystore -alias android -storepass android -keypass android
หากต้องการลงชื่อแอปของคุณในโหมดเผยแพร่ใน Android Studio ให้ทำตามขั้นตอนเหล่านี้:
1- บนแถบเมนูคลิกสร้าง> สร้าง APK ที่ลงชื่อแล้ว
2-on หน้าต่างตัวช่วยสร้าง APK ที่ลงชื่อแล้วคลิกสร้างใหม่เพื่อสร้างที่เก็บคีย์ใหม่ หากคุณมีที่เก็บคีย์อยู่แล้วให้ไปที่ขั้นตอนที่ 4
3- ในหน้าต่าง New Key Store ให้ข้อมูลที่จำเป็นตามที่แสดงในรูปรหัสของคุณควรมีอายุอย่างน้อย 25 ปีเพื่อให้คุณสามารถลงชื่อเข้าใช้การอัปเดตแอปด้วยรหัสเดียวกันผ่านอายุการใช้งานของแอปของคุณ
4- ในหน้าต่างตัวช่วยสร้าง APK ที่ลงชื่อแล้วให้เลือกที่เก็บคีย์คีย์ส่วนตัวและป้อนรหัสผ่านสำหรับทั้งคู่ จากนั้นคลิกถัดไป
5- ในหน้าต่างถัดไปเลือกปลายทางสำหรับ APK ที่เซ็นชื่อแล้วคลิกเสร็จสิ้น
http://developer.android.com/tools/publishing/app-signing.html
ฉันคลั่งไคล้วิธีการสร้าง. keystore โดยใช้คำสั่งบรรทัดเดียวในเชลล์ดังนั้นฉันจึงสามารถเรียกใช้จากแอปพลิเคชันอื่นได้ นี่คือวิธี:
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เป็นตัวระบุเฉพาะสำหรับแอปพลิเคชันใน. keystore
alias Identifier ของแอปเป็นเอนทิตีเดียวภายใน. keystore (สามารถมีได้หลายอย่าง)
.ks
)มันใช้งานได้ดีจริง ๆ สำหรับฉันมันไม่ขออะไรในคอนโซลเลยแค่สร้างไฟล์ สำหรับข้อมูลเพิ่มเติมโปรดดูkeytool - ที่สำคัญและเครื่องมือการจัดการใบรับรอง
/path/file.keystore
และชี้ไปที่พารามิเตอร์ storepass
jks
เป็นส่วนขยายที่เก็บคีย์อย่างเป็นทางการสำหรับ javaโดยทั่วไป แต่keystore
เป็นส่วนขยายที่แนะนำให้ใช้สำหรับแอป Androidแทน
สร้างไฟล์ keystore จากบรรทัดคำสั่ง:
เปิดบรรทัดคำสั่ง:
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 keystore password:
Re-enter new password:
ใส่> มันจะถามรายละเอียดของคุณ
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
ป้อน> ป้อน Y
Is CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91 correct?
[no]: Y
ป้อน> ใส่รหัสผ่านอีกครั้ง
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:
[การจัดเก็บ C: /index.keystore]
ส่งออกแพ็คเกจ Android ของคุณเป็น. apk ด้วยไฟล์ที่เก็บคีย์ที่คุณสร้างขึ้น
คลิกขวาที่แพ็คเกจที่คุณต้องการส่งออกแล้วเลือกส่งออก
เลือกส่งออกแอปพลิเคชัน Android> ถัดไป
ต่อไป
เลือกใช้ที่เก็บคีย์ที่มีอยู่> เรียกดูไฟล์. keystore> ป้อนรหัสผ่าน> ถัดไป
สร้างที่เก็บคีย์[.keystore/.jks]
ในสตูดิโอ ...
คลิกสร้าง (ALT + B) > สร้าง APK ที่ลงชื่อแล้ว ...
คลิกสร้างใหม่ .. (ALT + C)
เรียกดูเส้นทางที่เก็บคีย์ (SHIFT + ENTER)> เลือกเส้นทาง> ป้อนชื่อ> ตกลง
กรอกรายละเอียดเกี่ยวกับ.jks/keystore
ไฟล์
ของคุณ
ต่อไป
ไฟล์ของคุณ
ป้อนรหัสผ่านของ Master Studio (คุณสามารถรีเซ็ตได้หากไม่ทราบ) > ตกลง
เลือก * โฟลเดอร์ปลายทาง *> ประเภทการสร้าง
release : for publish on app store
debug : for debugging your application
คลิกเสร็จสิ้น
เสร็จแล้ว !!!
บทช่วยสอนนี้:
http://techdroid.kbeanie.com/2010/02/sign-your-android-applications-for.html
มีประโยชน์มากสำหรับฉันในครั้งแรกที่ฉันต้องสร้างที่เก็บคีย์ มันง่าย แต่คำแนะนำใน developer.android.com สั้นเกินไปเล็กน้อย
ส่วนที่ฉันไม่แน่ใจเกี่ยวกับคือตำแหน่งที่จะบันทึกและชื่อใดที่จะให้ไฟล์ที่เก็บคีย์
ฉันดูเหมือนว่าไม่สำคัญว่าคุณจะวางที่ใดเพื่อความปลอดภัยและสำรองข้อมูลจำนวนมาก ฉันเพิ่งวางไว้ในไดเรกทอรีแอพของฉัน
ตั้งชื่อไฟล์ "something.keystore" ซึ่งบางสิ่งอาจเป็นสิ่งที่คุณต้องการ ฉันใช้app_name.keystoreโดยที่app_nameเป็นชื่อแอปของฉัน
ส่วนถัดไปคือชื่อของนามแฝง อีกครั้งดูเหมือนจะไม่สำคัญอีกเลยฉันเพิ่งใช้app_nameอีกครั้ง เก็บรหัสผ่านเช่นเดียวกับที่คุณใช้ก่อนหน้านี้ เติมส่วนที่เหลือของฟิลด์และทำเสร็จแล้ว
ฉันทำตามคำแนะนำนี้เพื่อสร้างที่เก็บคีย์ดีบัก
คำสั่งคือ:
keytool -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999
ใช้คำสั่งนี้เพื่อสร้าง debug.keystore
keytool -genkey -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=Android Debug,O=Android,C=US"
สิ่งแรกที่ควรรู้คือคุณอยู่ในโหมดดีบั๊กหรือรีลีส จากไซต์นักพัฒนาซอฟต์แวร์ "มีสองโหมดบิลด์: โหมดดีบักและโหมดรีลีสคุณใช้โหมดดีบักเมื่อคุณพัฒนาและทดสอบแอปพลิเคชันของคุณคุณใช้โหมดรีลีสเมื่อคุณต้องการสร้างแอปพลิเคชันรุ่นที่คุณสามารถเผยแพร่โดยตรง สำหรับผู้ใช้หรือเผยแพร่ในตลาดแอปพลิเคชันเช่น Google Play "
ถ้าคุณอยู่ในโหมดดีบั๊กคุณทำสิ่งต่อไปนี้ ...
A. เปิดเทอร์มินัลแล้วพิมพ์:
keytool -exportcert -alias androiddebugkey -keystore path_to_debug_or_production_keystore -list -v
หมายเหตุ: สำหรับ Eclipse ที่เก็บคีย์ดีบักจะอยู่ที่ ~ / .android / debug.keystore ...
B. เมื่อได้รับพร้อมท์สำหรับรหัสผ่านเพียงป้อน "android" ...
C. หากคุณอยู่ในโหมด Release ให้ทำตามคำแนะนำใน ...
http://developer.android.com/tools/publishing/app-signing.html <- ลิงค์นี้จะอธิบายทุกสิ่งที่คุณจำเป็นต้องรู้
คุณสามารถสร้างที่เก็บคีย์ของคุณได้โดยส่งออก APK ที่ลงชื่อแล้ว เมื่อคุณจะพยายามส่งออก / สร้าง APK ที่ลงชื่อแล้วมันจะถามที่เก็บคีย์
คุณสามารถเลือกที่เก็บคีย์ที่มีอยู่ของคุณหรือคุณสามารถสร้างใหม่ได้อย่างง่ายดายโดยคลิกที่สร้างที่เก็บคีย์ใหม่
ที่นี่ลิงค์มีประโยชน์มากและอธิบายวิธีสร้างที่เก็บคีย์ของคุณได้ดีและสร้าง APK ที่ลงชื่อแล้ว
ลิงก์นี้อธิบายวิธีการใช้งานกับ Android Studio แต่ถ้าฉันจำได้มันคล้ายกับ Eclipse
ระวัง
เมื่อคุณสร้างที่เก็บคีย์ให้เก็บไว้ในที่ปลอดภัยเพราะคุณจะต้องสร้าง APK ที่ลงชื่อใหม่
ฉันต้องการแนะนำวิธีอัตโนมัติโดยใช้การไล่ระดับเท่านั้น
** กำหนดอย่างน้อยหนึ่ง param เพิ่มเติมสำหรับ keystore ในคำสั่งสุดท้ายเช่น 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
}
สิ่งนี้จะสร้างที่เก็บคีย์บนการซิงค์และสร้างโปรเจ็กต์
> Task :app:generateKeystore UP-TO-DATE
> Task :app:preBuild UP-TO-DATE
หากคุณไม่ต้องการหรือไม่สามารถใช้ Android Studio คุณสามารถใช้เครื่องมือ NPM create-android-keystore:
$ create-android-keystore quick
ผลลัพธ์ใดในที่เก็บคีย์ที่สร้างขึ้นใหม่ในไดเร็กทอรีปัจจุบัน
ข้อมูลเพิ่มเติม: https://www.npmjs.com/package/create-android-keystore