ฉันไม่เคยตั้งรหัสผ่านให้ที่เก็บคีย์และชื่อแทนของฉันดังนั้นจะสร้างอย่างไร


137

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

คำถามที่ฉันมาที่นี่เพื่อถามคือฉันไม่เคยสร้างที่เก็บคีย์หรือชื่อแทนหรือรหัสผ่านดังนั้นฉันจะลืมมันได้อย่างไรบนโลกใบนี้

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

ในที่สุดถ้า Android เป็นรหัสผ่านเริ่มต้นนามแฝงเริ่มต้นคืออะไร?

คำตอบ:


409

การลงชื่อเข้าใช้ในโหมดดีบั๊ก

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

เครื่องมือ SDK สร้างที่เก็บคีย์ดีบัก / คีย์ด้วยชื่อ / รหัสผ่านที่กำหนดไว้ล่วงหน้า:

Keystore name: "debug.keystore"
Keystore password: "android"
Key alias: "androiddebugkey"
Key password: "android"
CN: "CN=Android Debug,O=Android,C=US"

หากจำเป็นคุณสามารถเปลี่ยนตำแหน่ง / ชื่อของที่เก็บคีย์ / คีย์ดีบักหรือจัดหาที่เก็บคีย์ / คีย์ดีบักแบบกำหนดเองที่จะใช้ อย่างไรก็ตามคีย์ที่เก็บคีย์ดีบักแบบกำหนดเองใด ๆ / คีย์ต้องใช้ชื่อที่เก็บคีย์ / คีย์และรหัสผ่านเดียวกันกับคีย์ดีบักเริ่มต้น (ดังอธิบายข้างต้น) (ในการทำเช่นนั้นใน Eclipse / ADT ให้ไปที่Windows> ค่ากำหนด> Android> Build .)

ข้อควรระวัง: คุณไม่สามารถเผยแพร่แอปพลิเคชันของคุณสู่สาธารณะเมื่อลงนามด้วยใบรับรองการแก้ไขข้อบกพร่อง

ที่มา: Developer.Android


นั่นเป็นข้อมูลมาก ยอมรับมันเป็นคำตอบ อีกหนึ่งคำถามครับ ที่เก็บคีย์เดียวมีคีย์จำนวนมากหรือที่เก็บคีย์และคีย์เป็นสิ่งเดียวกันหรือไม่?
Anas Azeem

ที่เก็บคีย์อาจมีหลายคีย์และคุณจะต้องสร้างนามแฝงที่แตกต่างกับคีย์ที่ฉันคิดว่าตอนนี้มันชัดเจนว่าความแตกต่างระหว่างคีย์และที่เก็บคีย์ Keystore เป็นที่เก็บกุญแจ

ฉันใช้มันเพื่อลงชื่อ apk ที่ไม่ได้ลงชื่อฉันไม่สามารถติดตั้ง: jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~ ​​/ .android / debug.keystore my_unsigned.apk androiddebugkey ขอบคุณ
Ivan Morgillo

@ user2730944 คุณช่วยโปรดเฉลิมฉลองในการค้นหารหัสผ่านว่า "android" เป็นอย่างไรจากแหล่งที่คุณให้มาซึ่งไม่ปรากฏชัดเจน
spin_eight

22

หากคุณต้องการกำหนดค่าเหล่านี้ในระดับเสียงควรมีลักษณะดังนี้

signingConfigs {
        debug {
            storeFile file('PATH_TO_HOME/.android/debug.keystore')
            storePassword 'android'                   
            keyAlias 'AndroidDebugKey'
            keyPassword 'android'                     
        }
        ...
}

3

เมื่อเรารันแอปพลิเคชั่นใน eclipse apk create จะมีการลงชื่อเข้าใช้โดยค่าเริ่มต้น Keystore ซึ่งให้บริการโดย android

แต่ถ้าคุณต้องการอัปโหลดแอปพลิเคชันของคุณใน Play Store คุณต้องสร้างที่เก็บคีย์ของคุณเอง Eclipse มีอินเตอร์เฟส GUI เพื่อสร้างที่เก็บคีย์ใหม่แล้ว และคุณยังสามารถสร้างที่เก็บคีย์ผ่านบรรทัดคำสั่ง

นามแฝงเริ่มต้นคือ

androiddebugkey

ขอบคุณสำหรับคำตอบของคุณ แต่ความคิดใด ๆ รหัสผ่านสำหรับคีย์คืออะไรเนื่องจากรหัสผ่านสำหรับที่เก็บคีย์คือ "android" (ถ้าฉันไม่ผิด)
Anas Azeem

@AnasAzeem เห็นคำตอบของฉัน

3
Keystore name: "debug.keystore"

Keystore password: "android"

Key alias: "androiddebugkey"

Key password: "android"

ฉันใช้ข้อมูลนี้และสร้าง APK ที่ลงชื่อแล้วสำเร็จ


2

ดีกว่าตัวเลือกทั้งหมดที่คุณสามารถตั้งค่าของคุณจะเป็นเท่ากับของคุณsigningConfig debug.signingConfigในการทำเช่นนั้นคุณต้องทำดังต่อไปนี้:

android {
  ...
  buildTypes {
    ...
    wantedBuildType {
      signingConfig debug.signingConfig
    }
  }
}

ด้วยสิ่งที่คุณไม่จำเป็นต้องรู้ว่าอยู่ที่ไหนdebug.keystoreแอพจะทำงานกับทุกทีมแม้ว่าจะมีคนใช้สภาพแวดล้อมที่แตกต่างกัน


ยอดเยี่ยม นี่เป็นวิธีรัดกุมในการสร้าง debugProguard ชนิดที่ติดตั้งได้
Jerry101

1

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

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