ฉันทำไฟล์. keystore ของฉันหาย?


91

โอเค.. เรื่องสั้นขนาดยาวฉันกำลังพัฒนาบนคอมพิวเตอร์ที่ฉันไม่สามารถเข้าถึงได้อีกต่อไป ฉันสามารถดึงซอร์สโค้ดได้ แต่ไม่ใช่ไฟล์. keystore ที่ใช้ในการลงนามและเผยแพร่แอปพลิเคชันของฉันสู่ตลาด (พร้อมการอัปเดตหลายรายการ) ฉันและผู้ใช้ที่ไม่ดีของฉันโชคไม่ดีหรือไม่ถ้าฉันต้องการอัปเดต

ฉันรู้รหัสผ่านที่ใช้ในการเซ็นชื่อคีย์ (อย่างน้อยก็เป็นหนึ่งในสามรหัสนี้) ฉันจะสร้างรหัสผ่านใหม่ได้หรือไม่ ต้องมีวิธีรอบนี้ .. แล้วฮาร์ดไดรฟ์ล้มเหลวล่ะ?


14
หากมีก็เป็นวิธีการที่รอบ ๆ มันก็จะเอาชนะเพื่อความปลอดภัยทั้งที่มันควรจะให้บริการ!
ซานต้า

2
ตรวจสอบคำตอบนี้ตอนนี้เป็นไปได้
พัฒนา Vicky

คำตอบ:


78

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

โดยทั่วไปคำแนะนำเดียวที่มีอยู่ในที่เก็บคีย์: "สำรองข้อมูลไว้เสมอ!"


1
ฉันเจอปัญหานี้และต้องออกแอปเวอร์ชันใหม่อีกครั้ง ตั้งแต่นั้นมาคีย์ทั้งหมดของฉันก็อยู่ใน Dropbox
Varun

หลังจากอัปเดตเป็น Android Studio 3.3 ที่เก็บคีย์เก่าของฉันไม่ได้รับการยอมรับอีกต่อไปในระหว่างการลงนามแอป ข้อความแสดงข้อผิดพลาด "ไม่สามารถกู้คืนคีย์" ปรากฏขึ้น
Yar

มันเกิดขึ้นกับทุกการอัปเกรด Android Studio ฉันพบปัญหาเดียวกันสองครั้งกับการอัปเกรดจาก 4.0 เป็น 4.1
Toni Garabedyan

60

ตอนนี้เป็นไปได้ไม่ต้องกังวลนี่คือขั้นตอนทั้งหมดและขั้นสุดท้ายในการรีเซ็ตไฟล์. JKS

ฉันพักคีย์สำเร็จแล้ว

ขั้นตอนที่ 1

ดาวน์โหลดUPLOAD CERTIFICATE (ชื่อไฟล์ - upload_cert.der ) จากคอนโซล Google Play Storeของคุณ

เพื่อดาวน์โหลดไฟล์ upload_cert.der

ขั้นตอนที่ 2

ไปที่ลิงก์นี้https://support.google.com/googleplay/android-developer/contact/otherbugsและกรอกแบบฟอร์มใบสมัครด้วยรหัสอีเมลที่ถูกต้องของคุณและอัปโหลดไฟล์ (upload_cert.der)

กรอกแบบฟอร์มใบสมัคร

ขั้นตอนที่ 3

ตอนนี้คุณจะได้รับอีเมลจากทีมสนับสนุนและพวกเขาไม่ต้องการไฟล์. JK ของคุณ แต่เป็นไฟล์. PEM นี่คือตัวอย่างอีเมล

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

ขั้นตอนที่ 4

ในการแปลงไฟล์. JKS เป็นไฟล์. PEM คุณต้องดาวน์โหลดKeyStore Explorer JKS ถึง PEM

หลังจากตอบเมลแล้วให้รอ 48 ถึง 72 ชั่วโมงการเติมคีย์สโตร์ของคุณจะรีเซ็ต


7
จะเกิดอะไรขึ้นหากไม่ได้เปิดใช้งานการลงชื่อเข้าใช้แอป Google Play สำหรับแอป
Vipul Behl

ไม่พบอะไรนอกจากมัน Google ประกาศใช้เทคนิคการลงนามแอป Android ใหม่อย่างเป็นทางการในเดือนพฤษภาคม 2017
นักพัฒนา Vicky

1
ในขั้นตอนที่ 3 ฉันจำเป็นต้องสร้างไฟล์ jks ใหม่และแปลงเป็นไฟล์ pem และส่งไปเป็น repaly mail ให้ ขั้นตอนนี้คือ corect ???
giveJob

1
ใช่คุณต้องสร้างไฟล์ JSK ใหม่และแปลงเป็น PEM @HemanthSP
Developer Vicky

ใช่ฉันทำแล้วและตอนนี้ที่เก็บคีย์ใหม่ของฉันมีสิทธิ์อัปโหลดฉันได้รับการยืนยันอีเมลของ Google แล้ว
61

35

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

ตั้งแต่วันนี้คีย์การลงนามแอปใน Play Consoleได้รับการจัดการอย่างปลอดภัยโดย Google Play ซึ่งหมายความว่าคุณมีหน้าที่จัดการคีย์การอัปโหลดเท่านั้น หากคีย์การอัปโหลดของคุณถูกบุกรุกหรือสูญหายทีมปฏิบัติการของนักพัฒนาซอฟต์แวร์ของ Google สามารถช่วยเหลือได้โดยการยืนยันตัวตนของคุณและรีเซ็ตคีย์การอัปโหลดของคุณ Google จะยังคงลงนามใหม่ด้วยคีย์การลงนามแอปเดิมเพื่อให้แอปอัปเดตได้ตามปกติ

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

ข้อมูลอ้างอิง: ความช่วยเหลือของ Play Console> จัดการคีย์การลงนามแอปของคุณ


13

เป็นไปได้ไม่นาน

  1. ทำตามคำแนะนำในศูนย์ช่วยเหลือของAndroid Studioเพื่อสร้างคีย์ใหม่ ต้องแตกต่างจากคีย์ก่อนหน้านี้ หรือคุณสามารถใช้บรรทัดคำสั่งต่อไปนี้เพื่อสร้างคีย์ใหม่:

keytool -genkeypair -alias newalias -keyalg RSA -keysize 2048 -validity 9125 -keystore nameofkeystore.jks

คีย์นี้ต้องเป็นคีย์ RSA 2048 บิตและมีอายุการใช้งาน 25 ปี

  1. ส่งออกใบรับรองสำหรับคีย์นั้นเป็นรูปแบบ PEM:

keytool -export -rfc -alias newalias -file upload_certificate.pem -keystore nameofkeystore.jks

จากนั้นอัปโหลดไฟล์ pem นี้และกรอกแบบฟอร์มและส่งไปยังไซต์นี้ จากนั้นคุณจะได้รับอีเมลเมื่อเราได้ลงทะเบียนคีย์การอัปโหลดใหม่แล้ว ยอมรับคำขอรีเซ็ตคีย์จากเจ้าของบัญชี Play Consoleเท่านั้น

ดีและดีทั้งหมด คุณสามารถเผยแพร่ apk รุ่นใหม่ด้วยไฟล์ jks ใหม่ของคุณ


2
สิ่งนี้ใช้ได้เฉพาะเมื่อคุณเปิดใช้งานGoogle Play App Signing
สุมิตร

ไม่. ไม่จำเป็นต้องลงนามแอป Google Play อย่างน้อยฉันก็ไม่ได้เปิดใช้งาน
ksgngrkn

เอกสารนี้อยู่ที่ใด
สุมิตร

ใช้งานได้กับแอปการลงนามแอปเท่านั้น ฉันเพิ่งยืนยัน
Euridice01

11

หากคุณทราบรหัสผ่านที่เก็บคีย์แสดงว่าคุณยังไม่มีคีย์ส่วนตัวที่เกี่ยวข้องเพื่อลงนามแอปของคุณ คุณไม่มีโอกาสสร้างคีย์ส่วนตัวเดียวกันซึ่งตรงกับคีย์สาธารณะของคุณ

ดังนั้น: สำรองไฟล์ที่เก็บคีย์ของคุณเสมอ มีความสำคัญพอ ๆ กับซอร์สโค้ดของคุณ


2
ดังนั้นถ้าฉันเข้าใจถูกต้องคีย์ส่วนตัวนี้จะถูกสร้างขึ้นแบบสุ่มต่อที่เก็บคีย์ใช่ไหม และสิ่งเดียวที่เรารู้คือกุญแจสาธารณะใช่ไหม
iCantSeeSharp

หากคุณมีสิทธิ์เข้าถึงที่เก็บคีย์ที่ได้รับอนุญาตคุณยังสามารถส่งออกคีย์ส่วนตัวและนำเข้าในที่เก็บคีย์หรือบริการอื่น ๆ
saxos

การจัดเก็บไฟล์และคีย์ที่เก็บคีย์ของคุณไว้พร้อมกับ repo ของคุณจะดีที่สุดหรือไม่
Neon Warge

5

หากคุณเปิดใช้งาน Google Play App Signing สำหรับแอปพลิเคชันของคุณคุณไม่จำเป็นต้องกังวล

หากต้องการตรวจสอบว่าคุณเปิดใช้งานการลงนามแอป Google Play หรือไม่ให้ไปที่การจัดการรุ่น -> การลงนามแอปใน Google Play Console

หากเปิดใช้งานคุณสามารถติดต่อฝ่ายสนับสนุนของ Google Play โดยกรอกแบบฟอร์มการสนับสนุนมิฉะนั้นคุณสามารถเลือกใช้การแชทสดกับเจ้าหน้าที่ฝ่ายสนับสนุนได้ที่นี่: https://support.google.com/googleplay/android-developer/answer/7218994? hl = th

อธิบายปัญหาของคุณและจะบอกขั้นตอนต่อไปซึ่งรวมถึงการสร้างที่เก็บคีย์ RSA 2048 บิตใหม่ที่มีอายุการใช้งาน 25 ปีและส่งออกคีย์ไปยังรูปแบบ PEM และส่งอีเมลถึงพวกเขา

ในการส่งออกคีย์เป็นรูปแบบ PEM:

keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks

3

จากวันที่ยาวนานฉันยังค้นหาวิธีแก้ปัญหานั้น แต่ก็ไม่สำเร็จจนถึงตอนนี้ หากคุณมี apk แอปเวอร์ชันล่าสุดคุณสามารถดึงใบรับรองจากสิ่งนั้นได้โดยใช้คำสั่ง jarsigner cmd แต่คุณต้องมีคีย์ส่วนตัวสำหรับการอัปเดต Google Play ไม่ได้ให้ความผ่อนคลายใด ๆ


3
คุณมีข้อมูลเพิ่มเติมเกี่ยวกับวิธีการนี้หรือไม่?
Zabs

1

ฉันได้สร้าง apk ที่ลงนามโดยใช้ android studio ดังนั้นใน " key Store Path " ฉันเพียงแค่พิมพ์ชื่อบางส่วนโดยไม่มีนามสกุลและกรอกป๊อปอัปนี้และลงนามแอปพลิเคชัน ป้อนคำอธิบายภาพที่นี่

ครั้งต่อไปสำหรับการเผยแพร่แอปพลิเคชันฉันจำเส้นทางและชื่อที่สร้างไม่ได้

ฉันพบตำแหน่งเริ่มต้นซึ่งก็คือ "C: \ Program Files \ Java \ jdk1.8.0_45 \ jre \ bin": \ jre \ bin

และในโฟลเดอร์นั้นสั้นตามวันที่จากนั้นฉันลองใช้ไฟล์ล่าสุดและมันใช้ได้กับฉัน

หมายเหตุ: คุณควรจำรหัสผ่านที่เก็บคีย์และรหัสผ่านคีย์


1

เป็นไปได้ในตอนนี้หลังจากเดือนพฤษภาคม 2017 คุณสามารถอัปเดตแอปของคุณได้หากคุณทำคีย์สโตร์หรือรหัสผ่านที่เก็บคีย์หาย คุณไม่สามารถกู้คืนที่เก็บคีย์ที่สูญหายได้ แต่คุณสามารถแทนที่ที่เก็บคีย์บน playstore ได้ คลิกที่นี่

ขั้นตอนการลงนามแอป:

คุณสามารถอัปโหลด APK ที่ลงนามด้วยคีย์การลงนามแอปดั้งเดิมก่อนหรือหลังที่คุณเลือกใช้การลงนามแอปโดย Google Play

หากคุณเริ่มใช้ Android App Bundles คุณสามารถทดสอบได้ในแทร็กการทดสอบขณะที่คุณใช้ APK ที่มีอยู่ในการใช้งานจริง นี่คือวิธีการทำงาน:

  1. ลงนาม App Bundle หรือ APK แล้วอัปโหลดไปยัง Play Console
  2. ขั้นตอนการลงนามแตกต่างกันขึ้นอยู่กับสิ่งที่คุณอัปโหลด:

    • App Bundle: Google สร้าง APK ที่ปรับให้เหมาะสมจาก App Bundle ของคุณและเซ็นชื่อด้วยคีย์การลงนามแอป
    • APK ที่ลงนามด้วยคีย์การอัปโหลด: Google จะยืนยันและดึงลายเซ็นของคุณออกจาก APK จากนั้นจะลาออก APK ด้วยคีย์การลงนามแอป
    • APK ที่ลงนามด้วยคีย์การลงนามแอป: Google ยืนยันลายเซ็น Google มอบ APK ที่ลงชื่อให้กับผู้ใช้

0

ต้องมีวิธีรอบนี้ .. แล้วฮาร์ดไดรฟ์ล้มเหลวล่ะ?

ฉันต้องการเพิ่มว่าจะเก็บข้อมูลสำรองของที่เก็บคีย์ไว้ในที่เก็บข้อมูลบนคลาวด์เช่น Google Drive, Dropbox หรือส่งอีเมลถึงตัวคุณเองเสมอ


แน่นอนว่ามีวิธีการประมาณนี้ Google จะไม่ทำ Windows Store (แม้ว่าจะไม่มีใครใช้ก็ตาม) ให้คุณลงชื่อเข้าใช้แอปจาก Visual Studio (คุณต้องลงชื่อเข้าใช้ด้วยบัญชีร้านค้าของคุณ) จากนั้นก็สามารถอัปโหลดไปยังร้านค้าได้อย่างง่ายดาย Google--; ไมโครซอฟต์ ++;
Juan Carlos

0

ได้คุณสามารถปล่อยอัปเดตแอปที่มีอยู่ด้วยคีย์ใหม่ได้!

ขณะนี้ Google อนุญาตให้คุณอัปโหลดคีย์ใหม่ไปยังแอปที่มีอยู่โดยขอให้รีเซ็ตรหัสผ่านทางอีเมล / แชทสดในฝ่ายสนับสนุนของ Google

ขั้นตอนนี้ใช้เวลา 1-2 วันทำการ

ฉันทำตามขั้นตอนนี้และอัปโหลดการอัปเดตไปยังแอปเดียวกันด้วยคีย์ใหม่ ทีมเทคนิคของ Google Play Store ช่วยฉันรีเซ็ตคีย์ก่อนหน้านี้

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