เหตุใดจึงควรใช้ Play App Signing นอกเหนือจากการปกป้องคีย์ของคุณจากการสูญหายอย่างถาวรหรือการถูกละเมิดแล้ว การลงทะเบียนใช้งาน Play App Signing ยังช่วยให้คุณใช้การเพิ่มประสิทธิภาพสำหรับ Android App Bundle (.aab) ได้ด้วย การอนุญาตให้ Google รับรอง APK ที่เพิ่มประสิทธิภาพสำหรับการเผยแพร่ซึ่งสร้างขึ้นจาก App Bundle ของคุณจะช่วยให้คุณเข้าถึงบริการที่มีคุณค่า เช่น การปกป้องอัตโนมัติและการแปลสตริงอัตโนมัติโดยใช้โมเดล Gemini ได้ เกมจะได้รับสิทธิ์เข้าถึงบริการอัตโนมัติเพิ่มเติม เช่น Play Games Sidekick, เล่นขณะที่ดาวน์โหลด และช่วงทดลองใช้ฟรีสำหรับเกมแบบชำระเงิน
หากต้องการกำหนดค่า Play App Signing คุณต้องเป็นเจ้าของบัญชี
แนวคิดหลัก
เมื่อใช้ Play App Signing คุณจะต้องจัดการคีย์ 2 รายการที่แตกต่างกัน การทำความเข้าใจความแตกต่างและรูปแบบทางเทคนิคของคีย์ทั้ง 2 รายการนี้เป็นสิ่งสำคัญอย่างยิ่งในการหลีกเลี่ยงปัญหาการตรวจสอบสิทธิ์กับ API ของบุคคลที่สาม
| ประเภทคีย์ | ใครเป็นผู้เก็บรักษา | รายละเอียดทางเทคนิคและวัตถุประสงค์ |
|
คีย์การอัปโหลด |
คุณ (เก็บคีย์นี้ไว้ในที่ปลอดภัย) |
|
| คีย์ App Signing |
Google Play |
|
| ระบบควอนตัมพร้อมใช้งาน | Google Play |
|
หมายเหตุ: คีย์การอัปโหลดและคีย์ App Signing ควรแตกต่างกันเพื่อความปลอดภัยสูงสุด
วิธีที่ Google รับรองแอป: Google จะใช้ apksigner เพื่อเพิ่มแสตมป์ 2 รายการลงในไฟล์ Manifest ของแอป (com.android.stamp.source และ com.android.stamp.type) เมื่อสร้างและรับรอง APK ด้วยคีย์ App Signing แสตมป์เหล่านี้ช่วยให้มั่นใจได้ว่า APK ของคุณสามารถตรวจสอบย้อนกลับไปยังผู้รับรองเดิมได้อย่างปลอดภัย
ตั้งค่า Play App Signing
กระบวนการตั้งค่าจะขึ้นอยู่กับว่าคุณกำลังเผยแพร่แอปใหม่หรือย้ายข้อมูลแอปที่มีอยู่
สำหรับแอปใหม่
- สร้างแอปใหม่: ระบบจะลงทะเบียนแอปของคุณโดยอัตโนมัติเพื่อใช้การรับรองแบบไฮบริดที่พร้อมสำหรับควอนตัมด้วยคีย์ที่ Google สร้างขึ้น นอกจากนี้ เรายังสร้างคีย์แบบคลาสสิกแยกต่างหากเพื่อใช้ในบล็อกลายเซ็นที่อุปกรณ์ Android 16 ขึ้นไปรู้จัก
- สร้างคีย์การอัปโหลด: สร้างคีย์สโตร์เพื่อรับรอง App Bundle ของรุ่น คุณสร้างได้ใน Android Studio หรือใช้ยูทิลิตี Keytool ของ Java จากบรรทัดคำสั่ง
- อัปโหลด App Bundle: ไปที่ Play Console แล้วเตรียมรุ่นที่มาใหม่ โดยค่าเริ่มต้น เมื่ออัปโหลด App Bundle ระบบจะลงทะเบียนแอปของคุณโดยอัตโนมัติเพื่อใช้การรับรองแบบไฮบริดที่พร้อมสำหรับควอนตัมด้วยคีย์ที่ Google สร้างขึ้น
- เปลี่ยนคีย์ App Signing (ไม่บังคับ): นักพัฒนาแอปขั้นสูงที่ต้องการจัดการคีย์ของตนเองสามารถเปลี่ยนค่าเริ่มต้นนี้ได้ก่อนที่จะมีการเปิดตัวรุ่นในแทร็กการทดสอบแบบเปิดหรือแทร็กเวอร์ชันที่ใช้งานจริง คุณทำได้โดยไปที่ได้รับการปกป้องด้วย Google Play > การเผยแพร่ใน Play Store > ไปที่ Play App Signing แล้วคลิกเปลี่ยนคีย์ App Signing จากนั้นคุณจะเลือกดำเนินการต่อไปนี้ได้
- ใช้คีย์เดียวกับแอปอื่นในบัญชีนักพัฒนาแอปนี้
- ระบุสำเนาคีย์ App Signing (ทำตามวิธีการ)
สำหรับแอปที่มีอยู่
หากปัจจุบันคุณจัดการคีย์ของตนเองและอัปโหลด 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) หากแอปใช้การรับรองแบบไฮบริดที่พร้อมสำหรับควอนตัม คุณต้องคัดลอกฟิงเกอร์ปรินต์ของคีย์ 3 รายการและลงทะเบียนแต่ละรายการกับผู้ให้บริการ API ได้แก่ คีย์แบบคลาสสิกและคีย์ PQC ใหม่ที่ใช้ในอุปกรณ์รุ่นใหม่กว่า และคีย์แบบคลาสสิกที่ใช้ในอุปกรณ์รุ่นเก่า
- วางฟิงเกอร์ปรินต์เหล่านี้ลงในคอนโซลของผู้ให้บริการ API (เช่น คอนโซล Google Cloud)
เคล็ดลับ: อัปเดตไฟล์ assetlinks.json ด้วยฟิงเกอร์ปรินต์เหล่านี้หากคุณใช้ Android App Link
จัดการคีย์
อัปเกรดคีย์ App Signing
หากคีย์ App Signing ถูกละเมิด หรือคุณต้องการคีย์ที่มีการเข้ารหัสลับที่รัดกุมยิ่งขึ้น ก็สามารถขออัปเกรดคีย์ประจำปีสำหรับการติดตั้งทั้งหมดใน Android 17 (API ระดับ 37) ขึ้นไปได้
วิธีการบังคับใช้ใน Android เวอร์ชันต่างๆ
- Android 17 (API ระดับ 37) ขึ้นไป: แพลตฟอร์ม Android จะบังคับใช้การใช้คีย์ไฮบริดที่พร้อมสำหรับควอนตัมที่อัปเกรดแล้วอย่างเคร่งครัด ดู APK Signature Scheme v3.2
- Android 13 (API ระดับ 33) ถึง Android 16 (API ระดับ 36): แพลตฟอร์ม Android จะบังคับใช้การใช้คีย์แบบคลาสสิกล่าสุดอย่างเคร่งครัด ดู APK Signature Scheme v3.1
- Android 7 (API ระดับ 24) ถึง Android 12 (API ระดับ 32): แพลตฟอร์ม Android เองไม่ได้บังคับใช้คีย์ที่อัปเกรดแล้วและยังคงรู้จักคีย์แบบคลาสสิกเวอร์ชันล่าสุด อย่างไรก็ตาม 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 (ทำตามวิธีการ)
- คลิกบันทึก
- ลงทะเบียนฟิงเกอร์ปรินต์ของคีย์ใหม่กับผู้ให้บริการ API หากแอปใช้การรับรองแบบไฮบริดที่พร้อมสำหรับควอนตัม คุณต้องลงทะเบียนฟิงเกอร์ปรินต์สำหรับคีย์ใหม่ 2 รายการ ได้แก่ คีย์แบบคลาสสิกใหม่และคีย์ PQC ใหม่
ขอรีเซ็ตคีย์การอัปโหลด
หากคีย์การอัปโหลดสูญหายหรือสงสัยว่าถูกละเมิด คุณจะยังเข้าถึงแอปได้
- สร้างคีย์การอัปโหลดใหม่ใน Android Studio
- ส่งออกใบรับรองเป็นรูปแบบ PEM
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
(ดูความช่วยเหลือเพิ่มเติมเกี่ยวกับเส้นทาง keytool และคีย์สโตร์ได้ที่คู่มือ App Signing ของ Android Studio) - เมื่อสร้างไฟล์ PEM แล้ว ให้ส่งคำขอรีเซ็ตใน Play Console
- ไปที่ได้รับการปกป้องด้วย Google Play > การป้องกันของ Play Store > จัดการ Play App Signing
- ในส่วนใบรับรองคีย์อัปโหลด ให้คลิกขอรีเซ็ตคีย์การอัปโหลด
- ป้อนเหตุผลในการรีเซ็ต
- อัปโหลดไฟล์
upload_certificate.pemแล้วคลิกส่งคำขอ
แนวทางปฏิบัติแนะนำและการเผยแพร่ในช่องทางอื่น
- ความปลอดภัย: ปกป้องการเข้าถึง Play Console โดยบังคับใช้การยืนยันแบบ 2 ขั้นตอนสำหรับผู้ใช้ทั้งหมด
- การเพิ่มประสิทธิภาพ App Bundle: การลงทะเบียนใน Play App Signing จะช่วยให้คุณเข้าถึงการเพิ่มประสิทธิภาพสำหรับ App Bundle ได้ หากต้องการใช้การเพิ่มประสิทธิภาพ ให้ทำการเปลี่ยนแปลงการกำหนดค่าที่จำเป็นเมื่อสร้างรุ่นใหม่ก่อน แล้วจึงอัปโหลด App Bundle ใหม่
- การเผยแพร่นอก Google Play: หากเผยแพร่ผ่าน App Store อื่นและต้องการใช้คีย์ Signing เดียวกันทุกที่ คุณมี 2 ตัวเลือก [1] คุณจะให้ Google สร้างคีย์ App Signing และดาวน์โหลด APK สากลที่รับรองแล้วจาก Play Console หรือ Play Developer API เพื่อจัดจำหน่ายที่อื่นก็ได้ (ใน Play Console ให้ไปที่ทดสอบและเผยแพร่ > รุ่นและ Bundle ล่าสุด เลือก App Bundle แล้วคลิกแท็บดาวน์โหลด) หรือ [2] คุณจะสร้างคีย์ App Signing ที่ต้องการใช้สำหรับ App Store ทั้งหมด แล้วโอนสำเนาคีย์ไปยัง Google เมื่อกำหนดค่า Play App Signing ก็ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของอัปเดตแอปและตัวเลือกในการเปิดหรือปิดใช้การอัปเดตข้าม Store
- การทดสอบ: ใช้การแชร์แอปภายในเพื่อทดสอบสิ่งที่ Google Play จะนำส่งให้ผู้ใช้ หรือดาวน์โหลด APK เฉพาะอุปกรณ์จาก App Bundle Explorer แล้วติดตั้งในเครื่องโดยใช้ adb install-multiple *.apk
- APK Signature Scheme v4: Play App Signing จะใช้การรับรอง v4 โดยอัตโนมัติสำหรับแอปที่มีสิทธิ์เพื่อรองรับการเผยแพร่ที่เพิ่มประสิทธิภาพในอุปกรณ์ Android 11 ขึ้นไป คุณไม่จำเป็นต้องดำเนินการใดๆ ยกเว้นแอปทั้งหมดที่ใช้การรับรองแบบไฮบริดที่พร้อมสำหรับควอนตัม ซึ่งยังไม่รองรับการรับรอง v4 อ่านข้อมูลเพิ่มเติมเกี่ยวกับข้อดีทางเทคนิคได้ในเอกสารประกอบเกี่ยวกับ APK Signature Scheme v4
โปรเจ็กต์ Google Cloud ที่โฮสต์ด้วยตนเอง
หากมีข้อกำหนดด้านความปลอดภัยที่เฉพาะเจาะจงมาก (เช่น การใช้คีย์ OEM) คุณสามารถใช้ Play Developer API เพื่อลงทะเบียนใช้งาน Play App Signing โดยใช้โปรเจ็กต์ Google Cloud ที่โฮสต์ด้วยตนเองได้
การตั้งค่านี้ไม่ใช่การตั้งค่ามาตรฐานและเราไม่แนะนำให้ใช้ การใช้โปรเจ็กต์ที่โฮสต์ด้วยตนเองหมายความว่าคุณต้องรับผิดชอบอย่างเต็มที่ต่อการดำเนินการ App Signing
- ซึ่งจะทำให้ Google Play ไม่สามารถให้บริการฟีเจอร์ที่จำเป็น เช่น การกู้ข้อมูลคืนหลังจากภัยพิบัติ
- Google ไม่สามารถสร้างใหม่หรือแก้ไขรุ่นที่มีอยู่ได้ หากต้องการแก้ไขข้อผิดพลาดที่เกี่ยวข้องกับรุ่น คุณต้องอัปโหลดรุ่นใหม่
- การเพิ่มประสิทธิภาพขั้นสูง การปรับปรุง Google Play บางอย่าง และฟีเจอร์ความปลอดภัย เช่น การรับรองแบบไฮบริดที่พร้อมสำหรับควอนตัม อาจไม่พร้อมใช้งานในการกำหนดค่านี้
- สร้างหรือนำเข้าคีย์ Signing ไปยัง Cloud KMS โดยตรวจสอบว่าได้กำหนดค่าตำแหน่งเป็นหลายภูมิภาคในสหรัฐอเมริกา และทำตามเอกสารประกอบการนำเข้าคีย์ KMS
- หากต้องการเปลี่ยนคีย์ Signing ให้ใช้เมธอด enrollApp คุณจะเปลี่ยนคีย์ Signing ได้ก่อนที่จะเผยแพร่แอปไปยังแทร็กการทดสอบแบบเปิดหรือแทร็กเวอร์ชันที่ใช้งานจริงเท่านั้น
- หากต้องการอัปเกรดคีย์ Signing หลังจากเผยแพร่ ให้ใช้เมธอด rotateAppSigningKey
- มอบบทบาท IAM ต่อไปนี้ให้กับไคลเอ็นต์หรือบัญชีบริการที่ตรวจสอบสิทธิ์ด้วย Google Play Developer API
- ตรวจสอบว่าคุณมีโควต้าเพียงพอที่จะดำเนินการเข้ารหัส โดยเฉพาะอย่างยิ่ง เราขอแนะนำให้เพิ่มโควต้าสำหรับ asymmetric_requests เป็นอย่างน้อย 350 QPS
- หากต้องการดูวิธีใช้คีย์ Signing ให้เปิดใช้บันทึกการตรวจสอบในโปรเจ็กต์ Cloud KMS