วิธีดึง Key Alias ​​และ Key Password สำหรับ APK ที่ลงนามใน Android Studio (ย้ายจาก Eclipse)


90

ฉันมีแอป Android ที่เผยแพร่ใน Google Play ซึ่งฉันอัปเดตเป็นระยะ ฉันทำตามขั้นตอนต่อไปนี้เพื่อลงนามแอปก่อนการพุชใหม่:

กดเมาส์ขวาบนโปรเจ็กต์ 'เครื่องมือ Android' -> ส่งออกแพ็คเกจแอปพลิเคชันที่มีลายเซ็นระบุรหัสผ่านที่เก็บคีย์ลงชื่อแอปของคุณอัปโหลดไฟล์ apk ไปยัง Google Play Developer Console

เมื่อเร็ว ๆ นี้ฉันได้นำเข้าโปรเจ็กต์จาก Eclipse ไปยัง Android Studio และทำงานต่อบน Android Studio ตอนนี้ฉันวางแผนที่จะผลักดันการแก้ไขในแอป ฉันคิดว่าฉันมีตัวเลือกนี้ในการลงชื่อ apk ใน android studio

สร้าง -> สร้าง apk ที่ลงนาม ->ป้อนคำอธิบายภาพที่นี่

ตามความเข้าใจของฉันสำหรับแอป Android ของฉันฉันต้องใช้ที่เก็บคีย์และรหัสผ่านที่เก็บคีย์เดียวกันกับที่ฉันใช้ก่อนหน้านี้เพื่อส่งการอัปเดตไปยัง Google Play นอกจากนี้ยังมีการขอ Key Alias ​​และ Key Password ฉันจำชื่อแทนคีย์และรหัสผ่านคีย์ไม่ได้ (ใส่หมายเลข 4 ในภาพ) ขณะลงนาม apk ใน Eclipse ข้อเสนอแนะใด ๆ ที่ฉันสามารถทำได้ตอนนี้? หากฉันทราบรหัสผ่านที่เก็บคีย์และที่เก็บคีย์ของฉันแล้วจะมีวิธีดึงชื่อแทนคีย์และรหัสผ่านคีย์นามแฝงหรือไม่

อัปเดต: ตอนนี้ฉันสามารถดึงนามแฝงคีย์ของฉันผ่านคำสั่ง keytool -list -v -keystore name.keystore


"ไม่มีตัวเลือกเป็นนามแฝงคีย์หรือรหัสผ่านคีย์ขณะลงนาม apk ใน Eclipse" - มีอยู่ใน Eclipse ของฉันด้วยปลั๊กอิน ADT ในความเป็นจริงไม่สามารถสร้างคีย์โดยไม่มีนามแฝงได้
CommonsWare

ในกรณีนั้นฉันอาจจำไม่ได้ คุณช่วยบอกวิธีดึงชื่อแทนคีย์ได้ไหม
MSIslam

2
หากคุณมีรหัสผ่านที่เก็บคีย์keytoolอาจสามารถแสดงรายการนามแฝงได้ เป็นเวลานานแล้วที่ฉันทำอะไรด้วยkeytoolตนเอง
CommonsWare

1
ไม่มันไม่เป็นไรที่จะสร้างใหม่เว้นแต่ว่าคุณต้องการเปลี่ยนเป็นคีย์ใหม่และบังคับให้ผู้ใช้ของคุณสูญเสียข้อมูลแอพ (และอย่างน้อยผู้ที่รับแอพผ่าน play store) เพื่อแทนที่แอพที่มีอยู่ด้วยแอพที่มี ชื่ออื่น ส่วนใหญ่ที่คุณใช้อยู่ในปัจจุบันจะถูกเก็บไว้ในข้อมูลเมตาของโครงการซึ่งค่อนข้างเป็นข้อความธรรมดา
Chris Stratton

3
ที่จริงฉันสามารถดึงนามแฝงด้วยคำสั่ง keytool -list -v -keystore name.keystore ตอนนี้ฉันต้องดึงรหัสผ่าน มีวิธีใดในการเรียกคืนรหัสผ่านคีย์นามแฝงหรือไม่?
MSIslam

คำตอบ:


159

บน Macฉันพบเส้นทางไฟล์ที่เก็บคีย์รหัสผ่านนามแฝงคีย์และรหัสผ่านคีย์ในรายงานบันทึกก่อนหน้านี้ก่อนที่ฉันจะอัปเดต Android Studio

ฉันเปิดยูทิลิตี้คอนโซลและเลื่อนลงไปที่ ~ / Library / Logs -> AndroidStudioBeta -> idea.log.1 (หรือหมายเลขบันทึกเก่า ๆ )

จากนั้นฉันค้นหา“ android.injected.signing.store” และพบสิ่งนี้จากวันที่ก่อนหน้านี้:

-Pandroid.injected.signing.store.file=/Users/myuserid/AndroidStudioProjects/keystore/keystore.jks, 
-Pandroid.injected.signing.store.password=mystorepassword, 
-Pandroid.injected.signing.key.alias=myandroidkey, 
-Pandroid.injected.signing.key.password=mykeypassword,

บน Windows

คุณสามารถค้นหารหัสผ่านคีย์ที่หายไปได้ในเส้นทางด้านล่าง

Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin หรือ ..taskHistory\taskHistory.bin

นี่คือภาพสำหรับมุมมองเส้นทางในโครงสร้างโฟลเดอร์

เปิดไฟล์โดยใช้เครื่องมือที่เหมาะสมเช่น NotePad ++ และค้นหาด้วยส่วนของรหัสผ่านที่คุณจำได้ คุณจะพบมันแน่นอน มิฉะนั้นให้ลองค้นหาด้วยสตริงนี้ "signConfig.storePassword"

หมายเหตุ: ฉันมีประสบการณ์เดียวกันและฉันสามารถหามันได้ ในกรณีที่คุณไม่พบคุณอาจล้างแคชและไฟล์ชั่วคราวทั้งหมด


15
คุณเป็นพระเจ้า หากคุณใช้ Windows ให้ไปที่.AndroidStudioX.X (x.x is the version number eg 1.5) > system > log > idea
Pztar

11
ว้าว! คุณบันทึกวันเดือนและปีของฉัน! ยอดเยี่ยมมาก! :) แต่ในกรณีของฉัน (Android 2.2) รหัสผ่านจะแสดงเป็น: ******** บน WindowsC:\Users\yourUser\.Android2.2\system\log\idea.log.1
Francisco Romero

8
@ Error404 รหัสผ่านจะแสดงอยู่ใต้ส่วน ***** แรก มันใช้ได้กับฉันบน Android 2.2
Montolide

1
^^ @ ขอแสดงความเสียใจ แต่ฉันลืมแท็กคุณในนี้ ... ในกรณีที่คุณยังมีปัญหาอยู่
Kmanc

7
น่าเสียดายที่ไม่ทำงานบน Windows และ Android Studio 3.3 รหัสผ่านที่ซ่อนอยู่ใน ********
D.Zotov

122

ในที่สุดฉันก็คิดปัญหาได้

ในการรับ Key Alias:ฉันคัดลอก keytool.exe และไฟล์ที่เก็บคีย์ของฉันลงในโฟลเดอร์ C: \ Program Files \ Java \ jdk1.7.0_71 \ bin จากนั้นจากพรอมต์คำสั่งฉันเขียน: keytool -list -v -keystore <name>.keystore มันจะถามรหัสผ่านที่เก็บคีย์จากนั้น จากนั้นจะแสดงชื่อแทนคีย์และลายนิ้วมือใบรับรองและข้อมูลอื่น ๆ

จากนั้นฉันก็พยายามสร้าง Apk ที่ลงชื่อสำหรับโปรเจ็กต์อีกครั้งฉันให้ที่เก็บคีย์รหัสผ่านที่เก็บคีย์นามแฝงคีย์และให้รหัสผ่านเดียวกัน จากนั้นมันจะขอรหัสผ่านหลักฉันลองด้วยรหัสเดียวกันและมันล้มเหลว ด้วยตัวเลือกการรีเซ็ตฉันจะรีเซ็ตรหัสผ่านหลักที่นี่


@ JoelDean ช่วยให้รายละเอียดเพิ่มเติมได้ไหม คุณสามารถรีเซ็ตหรือดึงรหัสผ่านนามแฝงของที่เก็บคีย์โดยใช้สิ่งนี้ได้หรือไม่? หรือแค่นามแฝง?
rgamber

ฉันจำรหัสผ่านได้ดังนั้นฉันจึงสามารถดึงนามแฝงโดยใช้วิธีนี้ได้
Joel Dean

คุณช่วยอธิบายคำตอบส่วนที่สองอีกครั้งได้ไหม !! คุณทำฉันหายจาก "และให้รหัสผ่านเดียวกัน"
Muhammed Refaat

1
@MuhammedRefaat รหัสผ่านเดียวกันกับรหัสผ่านที่เก็บคีย์
MSIslam

1
ฉันรู้รหัสผ่านที่เก็บคีย์ แต่ไม่ทราบเส้นทางที่เก็บคีย์คุณสามารถช่วยฉันได้ที่ไหน ฉันรู้แค่พา ธ ไฟล์ jks และรหัสผ่านที่เก็บคีย์และคีย์ แต่จำรหัสผ่านไม่ได้ โปรดช่วย
Rajkumar Gour

54

วิธีดึงรหัสผ่านที่เก็บคีย์

คุณไม่สามารถดึงรหัสผ่านได้ ถ้าคุณลืมมันคุณจะถึงวาระ

วิธีดึงชื่อแทนคีย์

$ keytool -list -v -keystore <store>

แต่คุณต้องมีรหัสผ่านที่เก็บคีย์ก่อน

แก้ไข

สิ่งที่ฉันจำไม่ได้คือ 'รหัสผ่านหลัก'

ไม่สามารถกู้คืนรหัสผ่านได้ หากคุณลืมรหัสผ่านที่สำคัญคุณก็จะถึงวาระเช่นกันและไม่มีวิธีอื่นใดนอกจากพยายามเรียกคืน ไม่มีสิ่งรีเซ็ตรหัสผ่านหรืออะไรทำนองนั้น

โปรดทราบว่าหากคุณลืมรหัสผ่านให้ดีคุณจะไม่มีการอัปเดตแอปของคุณ ( เอกสาร ) เพิ่มเติม:

คำเตือน: เก็บคีย์สโตร์และคีย์ส่วนตัวของคุณไว้ในที่ปลอดภัยและตรวจสอบให้แน่ใจว่าคุณมีการสำรองข้อมูลที่ปลอดภัย หากคุณเผยแพร่แอปไปยัง Google Play แล้วทำคีย์ที่คุณลงนามแอปหายคุณจะไม่สามารถเผยแพร่การอัปเดตใด ๆ ไปยังแอปของคุณได้เนื่องจากคุณต้องลงชื่อแอปทุกเวอร์ชันด้วยคีย์เดียวกันเสมอ


2
ฉันจำรหัสผ่านที่เก็บคีย์ได้ ฉันมีที่เก็บคีย์ด้วยและตอนนี้ฉันจำชื่อแทนคีย์ได้แล้ว สิ่งที่ฉันจำไม่ได้คือ 'รหัสผ่านหลัก' (ช่องหมายเลข 4 ในภาพที่เป็นปัญหา)
MSIslam

ขอบคุณสำหรับคำตอบ โหวตแล้ว จริงๆแล้วฉันมีนามแฝงสำคัญก่อนหน้านี้เหมือนกับที่คุณพูดถึง สิ่งที่ฉันประสบปัญหาคือรหัสผ่านของนามแฝง
MSIslam

แต่สิ่งนี้ให้ข้อมูลเกี่ยวกับคีย์รวมถึงลายนิ้วมือเท่านั้น แต่ไม่ได้ให้รหัสผ่านกับคุณเองมีอะไรหายไปที่นี่?
Muhammed Refaat

มีkeytoolสำหรับ Mac ด้วย
János

คุณสามารถกู้คืนรหัสผ่านของคุณได้ตลอดเวลาตราบเท่าที่คุณไม่ได้ฟอร์แมต HDD ของคุณอย่างสมบูรณ์และลบ IDE ของคุณ ดังที่ @Distjoy อธิบายไว้ด้านล่างฉันใช้วิธีนั้นในการกู้คืนรหัสผ่านของฉันมาโดยตลอด
XIII

24

ใน windows - เพียงแค่เปิดไฟล์ที่เก็บคีย์ของคุณในแผ่นจดบันทึกและในบรรทัดแรก - คุณจะเห็นนามแฝงของคุณที่เขียนเป็นตัวอักษรภาษาอังกฤษ


3
และบน Mac คุณสามารถทำได้ด้วย TextEdit
Leo Droidcoder

24

กู้คืนรหัสผ่านที่เก็บคีย์ของคุณ

ทำงานได้ 100%

Projects->taskHistory.bin

ป้อนคำอธิบายภาพที่นี่

Find->KeyAlias

ป้อนคำอธิบายภาพที่นี่

หมายเหตุ:คลิกและดูภาพของฉันเพื่อเป็นข้อมูลอ้างอิงของคุณ

ตอนนี้สำหรับประวัติงานสตูดิโอ Android ที่อัปเดตได้เปลี่ยนเป็นประวัติการดำเนินการแล้ว


นี่เป็นวิธีที่ง่ายที่สุดที่จะไป
JPritchard9518

16

จากคำตอบของ gkemp ใน Windows ฉันพบเส้นทางไฟล์ที่เก็บคีย์รหัสผ่านนามแฝงคีย์และรหัสผ่านในรายงานบันทึกก่อนหน้านี้ก่อนที่ฉันจะอัปเดต Android Studio

จากไฟล์ windows explorer c: / Users / ชื่อพีซีของคุณ / .AndroidStudio1.4 (เวอร์ชันสตูดิโอ Android ของคุณ) \ system \ log \ idea.log.1 (หรือหมายเลขบันทึกเก่า ๆ )

จากนั้นฉันค้นหา“ android.injected.signing.store” และพบสิ่งนี้จากวันที่ก่อนหน้านี้:

-Pandroid.injected.signing.store.file= path to your keystore 
-Pandroid.injected.signing.store.password=yourstorepassword
-Pandroid.injected.signing.key.alias=yourkeyalias
-Pandroid.injected.signing.key.password=yourkeypassword

14

ในอูบุนตูเราสามารถค้นหารหัสผ่านทั้งหมดที่เกี่ยวข้องกับที่เก็บคีย์จากเส้นทางที่กำหนด

/home/user/.AndroidStudio2.2(current version)/system/log/idea.log.x(older versions)

แก้ไขไฟล์และค้นหาandroid.injected.signing.storeจากนั้นคุณจะพบรหัสผ่าน

-Pandroid.injected.signing.store.file= path to your keystore 
-Pandroid.injected.signing.store.password=yourstorepassword
-Pandroid.injected.signing.key.alias=yourkeyalias
-Pandroid.injected.signing.key.password=yourkeypassword

14

เพื่อกู้คืน KEY ALIAS พิมพ์คำสั่งด้านล่างบนเทอร์มินัล

$ keytool -list -v -keystore <storekey>

จะให้ข้อมูลเริ่มต้น

ที่เก็บคีย์ของคุณมี 2 รายการ ...

คุณสามารถค้นหาชื่อนามแฝงได้ที่นั่น


10

ฉันพบรหัสผ่านหลักของฉันในเส้นทางด้านล่าง

Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin เปิดไฟล์และค้นหาด้วยส่วนของรหัสผ่านที่คุณจำได้ คุณจะพบมันแน่นอน

นอกจากนี้คุณสามารถอ้างอิงคำตอบนี้ได้stackoverflow.com/a/43007357/7089151


1
ไม่พบไฟล์นี้ที่ android studio 3.0 โปรดแจ้งให้เราทราบว่าฉันจะรับได้อย่างไร
ปีเตอร์

@Peter อ้างถึงสิ่งนี้: stackoverflow.com/a/43007357/7089151 สำรวจ taskArtifacts.bin ในโครงสร้างโครงการของคุณ หมายเลขเวอร์ชันอาจเปลี่ยนแปลง แต่สิ่งที่คุณต้องทำคือค้นหา taskArtifacts.bin
Maharshi Adiraju

1
ถ้าไม่มีโฟลเดอร์ taskArtifacts ให้เปิดไฟล์ taskHistory / taskHistory.bin ในโปรแกรมแก้ไขข้อความและค้นหาส่วนของ pwd ที่คุณจำไว้
Advait S

1
พวกคุณมีความคิดเกี่ยวกับวิธีค้นหารหัสผ่านคีย์หรือไม่? ฉันมี storePassword แต่ไม่มี KeyPassword
sommesh

9

ใช่คุณสามารถค้นหาคีย์ที่หายไปได้ในส่วนงานจาก Android Studio

Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin

สำหรับเวอร์ชันอัปเดตของสตูดิโอ Android เส้นทางคือ:

Project\.gradle\5.1.1\executionHistory\executionHistory.bin

เปิดไฟล์และค้นหาด้วยส่วนของรหัสผ่านที่คุณจำได้

ตัวอย่าง (จะอยู่ในไฟล์ bin นั้น): signingConfig.keyAlias�"key name"�signingConfig.keyPassword�"key password"�signingConfig.storePassword�"Store Password"�

คุณสามารถค้นหาด้วยสตริงนี้“ signConfig.storePassword” หรือสตริงใดก็ได้ที่ระบุในสตริงตัวอย่าง

หมายเหตุ: ฉันเคยประสบกับสิ่งเดียวกันและสามารถค้นหาได้ในเส้นทางข้างต้น ในกรณีที่คุณไม่พบคุณอาจล้างแคชและไฟล์ชั่วคราวทั้งหมด


7

น่าเสียดายที่โซลูชันที่ให้ไว้ข้างต้นไม่เหมาะสำหรับมือใหม่

มัน

keytool -list -v -keystore keystore_name.jks

1
โซลูชันด้านบนจะทำให้คุณได้รับ keyAlias ​​หากคุณจำรหัสผ่านที่เก็บคีย์
shahil

6

หากกำลังมองหาในบันทึกไม่ได้ช่วยให้คุณสามารถยังพยายามที่จะแรงเดรัจฉานรหัสผ่าน - วิธีการตรวจสอบ 3 ในโพสต์นี้ - Android KeyStore รหัสผ่านการกู้คืน

โพสต์ SOนี้มีคำตอบเพิ่มเติมเช่นกัน


คุณช่วยฉันได้มากเวลา ขอบคุณ;)))
Liam Kernighan

5

เพียงเปิดไฟล์คีย์ (ไฟล์. jks) ด้วย notepad ++ คุณจะได้ชื่อนามแฝงในบรรทัดแรก ...


สิ่งนี้ไม่ได้นำมาซึ่งสิ่งใหม่ Lucky Rana ได้กล่าวถึงเรื่องนี้แล้ว
Eduardo Hernández

5

คุณสามารถค้นหารายละเอียดที่เก็บคีย์ของคุณได้โดยไม่ต้องใช้รหัสผ่านดังต่อไปนี้

ดำเนินการคำสั่ง ( keytool -list -keystore <path>) ในพรอมต์คำสั่ง

คุณสามารถค้นหา Keytool ในโฟลเดอร์ java ในเครื่องของฉันฉันสามารถหาจากเส้นทางต่อไปนี้

C:\Program Files (x86)\Java\jdk1.7.0_71\bin> keytool -list -keystore C:\<YourKeystore>.Keystore

จากนั้นจะขอให้คุณป้อนรหัสผ่านที่นี่คุณไม่จำเป็นต้องป้อนรหัสผ่านแทนการกดปุ่มลูกศรขึ้นแล้วป้อน จากนั้นรายละเอียดเดียวกันจะแสดงพร้อมข้อความเตือนดังต่อไปนี้

***************** คำเตือนคำเตือนคำเตือน *****************

  • ความสมบูรณ์ของข้อมูลที่จัดเก็บในที่เก็บคีย์ของคุณ *

  • ยังไม่ได้รับการยืนยัน! เพื่อตรวจสอบความถูกต้อง *

  • คุณต้องระบุรหัสผ่านที่เก็บคีย์ของคุณ *

***************** คำเตือนคำเตือนคำเตือน *****************

ประเภทที่เก็บคีย์: JKS ผู้ให้บริการ Keystore: SUN

ที่เก็บคีย์ของคุณมี 1 รายการ

ตัวอย่างคีย์ 26 เมษายน 2017 PrivateKeyEntry ลายนิ้วมือใบรับรอง (SHA1): XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX: XX : XX: XX


ขอบคุณสำหรับความช่วยเหลือ ใช่มันเขียนไว้ในบรรทัดบนสุด คุณสามารถเปิดได้ใน notepad
Mudasar

5

เพียงเปิดไฟล์ yourApp.jks ด้วย Notepad คุณจะพบชื่อ Keystore & Alias ​​ที่นั่น !!


1
เข้ารหัส คุณไม่สามารถอ่านอักขระเมื่อคุณเปิดในแผ่นจดบันทึก
Abhinav Raja

แม้ว่าสิ่งนี้จะช่วยให้คุณทราบว่านามแฝงของคุณคืออะไรเนื่องจากนามแฝงยังคงไม่ได้เข้ารหัสในรูปแบบ. jks แต่ก็ไม่ได้ช่วยให้คุณค้นพบรหัสผ่านที่หายไปได้
วานวีแลนด์

1
พบนามแฝงใช่! และรหัสผ่านที่จำได้
เอริค

5

หากคุณใช้ MacOS และเลือกช่อง "บันทึกรหัสผ่าน" ใน Android Studio คุณสามารถกู้คืนรหัสผ่านจากการเข้าถึงพวงกุญแจ

  1. เปิดการเข้าถึงพวงกุญแจจากแอปพลิเคชัน / ยูทิลิตี้
  2. เลือกรหัสผ่านในหมวดหมู่ที่แผงด้านซ้าย
  3. ที่ช่องค้นหาด้านบนขวาพิมพ์ชื่อแอป Android หรือบางส่วนของชื่อแอป
  4. คุณจะเห็นบรรทัดผลลัพธ์หากคุณได้บันทึกรหัสผ่าน
  5. ดับเบิลคลิกที่มันเลือกช่องทำเครื่องหมายแสดงรหัสผ่านให้รหัสผ่านระบบของคุณเมื่อถูกถามและจะแสดงรหัสผ่านที่เก็บคีย์ของคุณ

1

Android Studio 3.0 ด้านล่างวิธีการทำงาน:
ค้นหาโครงการซิปเก่าของคุณ
หากคุณสร้าง apk คุณจะพบรหัสผ่านในไฟล์:

Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin

Pandroid.injected.signing.store.password = รหัสผ่าน

หากคุณไม่มีโปรเจ็กต์ซิปให้ค้นหาที่เก็บ git ของคุณว่าคุณมีโฟลเดอร์. gradle ถูกผลักหรือไม่
มิฉะนั้นคุณจะต้องกู้คืนไฟล์และค้นหาไฟล์ตามเนื้อหา "Pandroid.injected.signing.store.password"




0

ไม่ว่าในกรณีใดที่คุณสับสนกับรหัสผ่านคุณสามารถใช้ hit and trial ได้ ระบบจะถามรหัสผ่านจากคุณหากถูกต้องระบบจะแสดงรายการ

  • รายการ

$ keytool -list -v -keystore ชื่อไฟล์


0

ฉันพยายามแก้ปัญหามากมายและมีเพียงสิ่งเดียวที่ใช้ได้ผลกับฉันและฉันจะแบ่งปันกับคุณ

ป้อนคำอธิบายภาพที่นี่

ป้อนคำอธิบายภาพที่นี่

ป้อนคำอธิบายภาพที่นี่

ค้นหาโดยCtrl+F

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.