เหตุใดจึงควรใช้ Play App Signing นอกเหนือจากการปกป้องคีย์ของคุณจากการสูญหายอย่างถาวรหรือช่องโหว่แล้ว การลงทะเบียน Play App Signing ยังช่วยให้คุณใช้การเพิ่มประสิทธิภาพของ Google Play สำหรับ Android App Bundle (.aab) ได้ด้วย การอนุญาตให้ Google รับรอง APK ที่เพิ่มประสิทธิภาพสำหรับการเผยแพร่ซึ่งสร้างขึ้นจาก App Bundle ของคุณจะช่วยให้คุณเข้าถึงบริการที่มีคุณค่า เช่น การปกป้องอัตโนมัติและการแปลสตริงอัตโนมัติโดยใช้โมเดล Gemini ได้ เกมจะได้รับสิทธิ์เข้าถึงบริการอัตโนมัติเพิ่มเติม เช่น Play Games Sidekick, เล่นขณะที่ดาวน์โหลด และช่วงทดลองใช้ฟรีสำหรับเกมแบบชำระเงิน
หากต้องการกำหนดค่า Play App Signing คุณต้องเป็นเจ้าของบัญชีหรือมีสิทธิ์เผยแพร่เป็นเวอร์ชันที่ใช้งานจริง ทำการยกเว้นอุปกรณ์ และใช้ Play App Signing รวมถึงต้องยอมรับข้อกำหนดในการให้บริการ
แนวคิดหลัก
เมื่อใช้ Play App Signing คุณจะต้องจัดการกับคีย์ 2 รายการที่แตกต่างกัน การทำความเข้าใจความแตกต่างและรูปแบบทางเทคนิคของคีย์ทั้ง 2 รายการนี้เป็นสิ่งสำคัญอย่างยิ่งในการหลีกเลี่ยงปัญหาการตรวจสอบสิทธิ์กับ API ของบุคคลที่สาม
| ประเภทคีย์ | ใครเป็นผู้เก็บรักษา | รายละเอียดทางเทคนิคและวัตถุประสงค์ |
|
คีย์การอัปโหลด |
คุณ (เก็บคีย์นี้ไว้ในที่ปลอดภัย) |
|
| คีย์ App Signing |
Google Play |
|
หมายเหตุ: คีย์การอัปโหลดและคีย์ App Signing ควรแตกต่างกันเพื่อความปลอดภัยสูงสุด
วิธีที่ Google รับรองแอป: Google จะใช้ apksigner เพื่อเพิ่มแสตมป์ 2 รายการลงในไฟล์ Manifest ของแอป (com.android.stamp.source และ com.android.stamp.type) เมื่อสร้างและรับรอง APK ด้วยคีย์ App Signing แสตมป์เหล่านี้ช่วยให้มั่นใจได้ว่า APK ของคุณสามารถตรวจสอบย้อนกลับไปยังผู้รับรองเดิมได้อย่างปลอดภัย
ตั้งค่า Play App Signing
กระบวนการตั้งค่าจะขึ้นอยู่กับว่าคุณกำลังเผยแพร่แอปใหม่หรือย้ายข้อมูลแอปที่มีอยู่
สำหรับแอปใหม่
- สร้างคีย์การอัปโหลด: สร้างคีย์สโตร์เพื่อรับรอง App Bundle ของรุ่น คุณสร้างได้ใน Android Studio หรือใช้ยูทิลิตี Keytool ของ Java จากบรรทัดคำสั่ง
- อัปโหลด App Bundle: ไปที่ Play Console แล้วเตรียมรุ่นใหม่ โดยค่าเริ่มต้น เมื่อคุณอัปโหลด App Bundle แล้ว Play App Signing จะสร้างคีย์ RSA 4096 บิตที่มีการเข้ารหัสลับที่รัดกุมโดยอัตโนมัติเพื่อจัดการและปกป้องแอปของคุณ แอปใหม่กว่า 90% ใช้ค่าเริ่มต้นที่แนะนำนี้ และคุณไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติมเพื่อตั้งค่า
- เปลี่ยนคีย์ App Signing (ไม่บังคับ): นักพัฒนาแอปขั้นสูงที่ต้องการจัดการคีย์ของตนเองสามารถเปลี่ยนค่าเริ่มต้นนี้ได้ คุณทำได้โดยคลิกเปลี่ยนคีย์ Signing ในส่วนความสมบูรณ์ของแอปของรุ่น หรือไปที่ได้รับการปกป้องด้วย Google Play > การเผยแพร่ใน Play Store > ไปที่ Play App Signing จากนั้นคุณจะเลือกดำเนินการต่อไปนี้ได้
- ใช้คีย์เดียวกับแอปอื่นในบัญชีนักพัฒนาแอปนี้
- ระบุสำเนาคีย์ App Signing: ก่อนอื่นให้ดาวน์โหลดคีย์การเข้ารหัสสาธารณะของ Google จาก Play Console จากนั้นใช้เครื่องมือ Play Encrypt Private Key (PEPK) (คุณสามารถดาวน์โหลดเครื่องมือที่คอมไพล์แล้วหรือซอร์สโค้ดของเครื่องมือได้โดยตรงจาก Console เพื่อยืนยันหรือสร้างด้วยตนเอง) เพื่อเข้ารหัสและอัปโหลดคีย์ RSA ที่มีอยู่ (2048 บิตขึ้นไป) จากที่เก็บใดก็ได้อย่างปลอดภัย
สำหรับแอปที่มีอยู่
หากปัจจุบันคุณจัดการคีย์ของตนเองและอัปโหลด APK คุณสามารถอัปเกรดเป็น Play App Signing เพื่อใช้ประโยชน์จาก App Bundle และการเพิ่มประสิทธิภาพของ Google Play ได้
- ไปที่ได้รับการปกป้องด้วย Google Play > การเผยแพร่ใน Play Store > ไปที่ Play App Signing ใน Play Console
- ยอมรับข้อกำหนดในการให้บริการ หากยังไม่ได้ดำเนินการ
- โอนสำเนาของคีย์เดิม: ดาวน์โหลดเครื่องมือ PEPK และทำตามวิธีการทีละขั้นตอนที่รวมไว้เพื่อเข้ารหัสและอัปโหลดคีย์ App Signing ที่มีอยู่จากที่เก็บใดก็ได้
ลงทะเบียนกับผู้ให้บริการ API
หากแอปใช้ API (เช่น Google Maps, OAuth หรือ Facebook Login) บริการเหล่านั้นจะตรวจสอบสิทธิ์แอปโดยใช้ลายนิ้วมือของคีย์ App Signing
เนื่องจาก Google เป็นผู้รับรอง APK สุดท้าย คุณจึงต้องลงทะเบียนลายนิ้วมือของคีย์ App Signing ที่ Google เก็บรักษากับผู้ให้บริการ API ไม่ใช่แค่คีย์การอัปโหลดในเครื่องของคุณเท่านั้น
- ไปที่ได้รับการปกป้องด้วย Google Play > การเผยแพร่ใน Play Store > ไปที่ Play App Signing
- เลื่อนไปที่ส่วนคีย์ App Signing
- คัดลอกลายนิ้วมือที่จำเป็น (SHA-1 หรือ SHA-256)
- วางลายนิ้วมือเหล่านี้ลงในคอนโซลของผู้ให้บริการ API (เช่น คอนโซล Google Cloud)
เคล็ดลับ: อัปเดตไฟล์ assetlinks.json ด้วยลายนิ้วมือเหล่านี้หากคุณใช้ Android App Link
จัดการคีย์
อัปเกรดคีย์ App Signing
หากคีย์ App Signing ถูกละเมิด หรือคุณต้องการคีย์ที่มีการเข้ารหัสลับที่รัดกุมยิ่งขึ้น ก็สามารถขออัปเกรดคีย์ประจำปีสำหรับการติดตั้งทั้งหมดใน Android N (API ระดับ 24) ขึ้นไปได้
วิธีการบังคับใช้ใน Android เวอร์ชันต่างๆ
- Android T (API ระดับ 33) ขึ้นไป: แพลตฟอร์ม Android จะบังคับใช้การใช้คีย์ที่อัปเกรดแล้วอย่างเคร่งครัด
- Android N (API ระดับ 24) ถึง Android S (API ระดับ 32): แพลตฟอร์ม Android เองไม่ได้บังคับใช้คีย์ที่อัปเกรดแล้วและยังคงรู้จักคีย์ Signing เดิม อย่างไรก็ตาม Google Play Protect จะทำการตรวจสอบเพิ่มเติมโดยตรวจสอบว่าอัปเดตแอปผ่านการรับรองด้วยคีย์ที่อัปเกรดแล้ว (เว้นแต่ผู้ใช้จะปิดไว้)
เรื่องสำคัญที่ควรพิจารณา
- ข้อมูลที่แชร์: เนื่องจากแพลตฟอร์มไม่ได้บังคับใช้คีย์ที่อัปเกรดแล้วใน Android S (API ระดับ 32) และต่ำกว่า หากคุณใช้คีย์เดียวกันในแอปหลายแอปเพื่อแชร์ข้อมูล Android เวอร์ชันเก่าเหล่านั้นจะรู้จักเฉพาะคีย์เดิมสำหรับฟีเจอร์ต่างๆ เช่น การแชร์สิทธิ์ที่กำหนดเอง
วิธีอัปเกรด
- ไปที่ได้รับการปกป้องด้วย Google Play > การเผยแพร่ใน Play Store > ไปที่ Play App Signing
- ในส่วนคีย์ App Signing ให้คลิกอัปเกรดคีย์
- เลือกเส้นทางการอัปเกรด
- ให้ Google Play สร้างคีย์ App Signing ใหม่ (แนะนำ)
- ใช้คีย์ App Signing เดียวกันกับอีกแอปหนึ่งในบัญชีนักพัฒนาแอปนี้
- ระบุสำเนาคีย์ App Signing (ทำตามวิธีการ)
- หากระบุคีย์ของคุณเอง ให้สร้างและอัปโหลด "หลักฐานแสดงการหมุนเวียนคีย์" โดยใช้เครื่องมือ apksigner (มาพร้อมกับเครื่องมือสร้าง Android SDK) (ดูรายละเอียดเกี่ยวกับ Flag ที่ใช้ที่นี่ได้ที่เอกสารประกอบเกี่ยวกับบรรทัดคำสั่งของ apksigner)
- apksigner
rotate --out /path/to/new/file --old-signer --ks old-signer-jks --set-rollback true --new-signer --ks new-signer-jks --set-rollback true
- apksigner
- คลิกบันทึกและลงทะเบียนลายนิ้วมือของคีย์ใหม่กับผู้ให้บริการ API
ขอรีเซ็ตคีย์การอัปโหลด
หากคีย์การอัปโหลดสูญหายหรือสงสัยว่าถูกละเมิด คุณจะยังเข้าถึงแอปได้
- สร้างคีย์การอัปโหลดใหม่ใน Android Studio
- ส่งออกใบรับรองเป็นรูปแบบ PEM:
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
(ดูความช่วยเหลือเพิ่มเติมเกี่ยวกับเส้นทาง keytool และ keystore ได้ที่คู่มือ App Signing ของ Android Studio) - ให้เจ้าของบัญชีขอรีเซ็ตคีย์การอัปโหลดผ่านแบบฟอร์มความช่วยเหลือของ Play Console
- อัปโหลด
upload_certificate.pemเมื่อมีข้อความแจ้ง
หมายเหตุ: การรีเซ็ตคีย์การอัปโหลดจะไม่ส่งผลต่อคีย์ App Signing หรือผู้ใช้
แนวทางปฏิบัติแนะนำและการเผยแพร่ในช่องทางอื่น
- ความปลอดภัย: ปกป้องการเข้าถึง Play Console โดยบังคับใช้การยืนยันแบบ 2 ขั้นตอนสำหรับผู้ใช้ทั้งหมด
- การเพิ่มประสิทธิภาพของ Google Play: การลงทะเบียนใน Play App Signing จะช่วยให้คุณเข้าถึงการเพิ่มประสิทธิภาพของ Google Play สำหรับ App Bundle ได้ หากต้องการรับข้อมูลอัปเดต ก่อนอื่นให้ทำการเปลี่ยนแปลงที่จำเป็นเมื่อสร้างรุ่นใหม่ แล้วจากนั้นจึงอัปโหลด App Bundle ใหม่
- การเผยแพร่นอก Google Play: หากเผยแพร่ผ่าน App Store อื่นและต้องการใช้คีย์ App Signing เดียวกันทุกที่ คุณมี 2 ตัวเลือก คุณจะให้ Google สร้างคีย์ App Signing และดาวน์โหลด APK สากลที่รับรองแล้วจากรุ่นและ Bundle ล่าสุดเพื่อเผยแพร่ที่อื่น (ไปที่ทดสอบและเผยแพร่ > รุ่นและ Bundle ล่าสุด เลือก App Bundle แล้วคลิกแท็บดาวน์โหลด) หรือจะสร้างคีย์ App Signing ที่ต้องการใช้สำหรับ App Store ทั้งหมด แล้วโอนสำเนาคีย์ไปยัง Google เมื่อคุณกำหนดค่า Play App Signing ก็ได้
- การทดสอบ: ใช้การแชร์แอปภายในเพื่อทดสอบสิ่งที่ Google Play จะนำส่งให้ผู้ใช้ หรือดาวน์โหลด APK เฉพาะอุปกรณ์จาก App Bundle Explorer แล้วติดตั้งในเครื่องโดยใช้ adb install-multiple *
.apk - APK Signature Scheme v4: Play App Signing จะใช้การรับรอง v4 โดยอัตโนมัติสำหรับแอปที่มีสิทธิ์เพื่อรองรับการเผยแพร่ที่เพิ่มประสิทธิภาพในอุปกรณ์ Android 11 ขึ้นไป คุณไม่จำเป็นต้องดำเนินการใดๆ อ่านข้อมูลเพิ่มเติมเกี่ยวกับข้อดีทางเทคนิคได้ในเอกสารประกอบเกี่ยวกับ APK Signature Scheme v4
- โปรเจ็กต์ Google Cloud ที่โฮสต์ด้วยตนเอง: หากมีข้อกำหนดด้านความปลอดภัยที่เฉพาะเจาะจงมาก (เช่น การใช้คีย์ OEM) คุณสามารถใช้ Play Developer API เพื่อลงทะเบียนใน Play App Signing โดยใช้โปรเจ็กต์ Google Cloud ที่โฮสต์ด้วยตนเองได้ หมายเหตุ: การตั้งค่านี้ไม่ใช่การตั้งค่ามาตรฐานและเราไม่แนะนำให้ใช้ การใช้โปรเจ็กต์ที่โฮสต์ด้วยตนเองหมายความว่าคุณต้องรับผิดชอบอย่างเต็มที่ต่อการดำเนินการ App Signing และจะทำให้ Google Play ไม่สามารถดำเนินการฟีเจอร์ที่จำเป็น เช่น การกู้ข้อมูลคืนหลังจากภัยพิบัติ