คู่มือนี้จะอธิบายวิธีที่แพลตฟอร์ม Android และ Google Play จัดการการอัปเดตแอป รวมถึงกล่าวถึงตัวเลือกต่างๆ สำหรับนักพัฒนาแอปที่เผยแพร่แอปใน App Store หลายแห่ง
วิธีที่ Android จัดการการอัปเดตแอป
แอป Android ทุกแอปมีรหัสแอปพลิเคชันที่ไม่ซ้ำกันซึ่งคล้ายกับชื่อแพ็กเกจ Java หรือ Kotlin เช่น com.example.myapp
รหัสนี้จะระบุแอปแต่ละรายการในอุปกรณ์โดยไม่ซ้ำกัน อุปกรณ์ Android จะติดตั้งแอปที่มีรหัสแอปพลิเคชันหนึ่งๆ ได้ครั้งละ 1 แอปเท่านั้น
แพลตฟอร์ม Android จะยอมรับการอัปเดตก็ต่อเมื่อเป็นไปตามเงื่อนไขต่อไปนี้
- รหัสแอปพลิเคชันของอัปเดตต้องเหมือนกับแอปที่ติดตั้ง
- ใบรับรองการรับรองของการอัปเดตต้องเหมือนกับใบรับรองการรับรองของแอปที่ติดตั้ง หรือต้องมีหลักฐานการเปลี่ยนที่ถูกต้อง
- รหัสเวอร์ชันของการอัปเดตต้องสูงกว่าหรือเท่ากับรหัสเวอร์ชันของแอปที่ติดตั้ง
- ในบางกรณี ผู้ใช้อาจต้องยอมรับการอัปเดต
โปรดทราบว่าไม่มีการป้องกันในตัวเพื่อป้องกันไม่ให้เครื่องมือติดตั้งต่างๆ อัปเดตแอปเมื่อการอัปเดตมีใบรับรอง Signing เดียวกันและรหัสเวอร์ชันเดียวกันหรือสูงกว่า
หากต้องการติดตั้งแอปที่ไม่เป็นไปตามเงื่อนไขข้างต้น ผู้ใช้ต้องถอนการติดตั้งเวอร์ชันที่ติดตั้งอยู่ก่อน ซึ่งจะเป็นการลบข้อมูลแอปทั้งหมดออกจากอุปกรณ์
วิธีที่ Google Play อัปเดตแอป
แนวทางการอัปเดตแอปของ Google Play ยึดตามหลักการต่อไปนี้
- แจ้งข้อมูลอัปเดตให้ผู้ใช้ทราบอยู่เสมอ เราขอแนะนำให้อัปเดตแอปอยู่เสมอเพื่อรักษาผู้ใช้ให้ปลอดภัยจากปัญหาด้านความปลอดภัยและรับประโยชน์จากการปรับปรุงฟีเจอร์ล่าสุด
- เคารพทางเลือกของผู้ใช้ Google Play จะอัปเดตแอปที่เชื่อมโยงกับบัญชีของผู้ใช้และตามค่ากำหนดการอัปเดตที่ผู้ใช้เลือก เช่น การอนุญาตให้ใช้หรือไม่อนุญาตให้ใช้อินเทอร์เน็ตแบบจำกัดปริมาณ
- เคารพทางเลือกของนักพัฒนาแอป Google Play ใช้ตัวเลือกการกำหนดค่าของนักพัฒนาแอปในการกำหนดการอัปเดตแอป
- หลีกเลี่ยงการใช้ทรัพยากรอย่างสูญเปล่า ประหยัดอายุการใช้งานแบตเตอรี่ด้วยการเพิ่มประสิทธิภาพเมื่อดาวน์โหลดการอัปเดต และลดการใช้อินเทอร์เน็ตโดยใช้เทคนิคต่างๆ เช่น การบีบอัดและการแพตช์
สำหรับแอปที่ติดตั้งในอุปกรณ์หนึ่งๆ Google Play จะอัปเดตแอปหากแอปดังกล่าวมีคุณสมบัติตรงตามเงื่อนไขต่อไปนี้
- แอปเผยแพร่ใน Google Play ด้วยรหัสแอปพลิเคชันเดียวกัน
- ใบรับรองการรับรองของแอปที่เผยแพร่ตรงกับใบรับรองการรับรองของเวอร์ชันที่ติดตั้งอยู่ในปัจจุบัน หรือมีหลักฐานแสดงการหมุนเวียนคีย์ที่ถูกต้อง
- แอปเป็นส่วนหนึ่งของคลังผู้ใช้หรือ OEM โหลดไว้ล่วงหน้า
- แอปพร้อมให้บริการสําหรับผู้ใช้และอุปกรณ์นี้ตามตัวเลือกการกำหนดเป้าหมายที่นักพัฒนาแอปกำหนด
- แอปที่ติดตั้งล้าสมัยเมื่อเทียบกับเวอร์ชันที่มีให้บริการใน Google Play
ตราบใดที่เป็นไปตามเงื่อนไขเหล่านี้ Google Play จะอัปเดตแอปได้ ส่วนย่อยด้านล่างแสดงรายละเอียดเกี่ยวกับเงื่อนไขบางอย่างที่ระบุไว้
โปรดทราบว่ายังมีกรณีอื่นๆ ที่ Google Play จะดาวน์โหลดเนื้อหาแอปหรือดำเนินการบำรุงรักษาไบนารีของแอปในนามของนักพัฒนาแอปโดยไม่เปลี่ยนรหัสเวอร์ชัน Android เช่น เมื่อดาวน์โหลดบางส่วนเสร็จสมบูรณ์หรือดาวน์โหลดส่วนแยกแบบออนดีมานด์
เผยแพร่ใน Google Play
Google Play ใช้รหัสแอปพลิเคชันเพื่อระบุแอปพลิเคชันที่เผยแพร่ใน Google Play โดยไม่ซ้ำกัน เงื่อนไขนี้จะสำเร็จหากรหัสแอปพลิเคชันของแอปที่ติดตั้งตรงกับรหัสแอปพลิเคชันของแอปที่เผยแพร่ใน Google Play
เป็นส่วนหนึ่งของคลังภาพของผู้ใช้
เงื่อนไขนี้จะเป็นไปตามข้อใดข้อหนึ่งต่อไปนี้
- บัญชี Google ที่ใช้งานอยู่ในอุปกรณ์ได้ซื้อแอปไว้ก่อนหน้านี้แล้วโดยการแตะปุ่มติดตั้งหรือซื้อใน Google Play
- OEM โหลดแอปไว้ล่วงหน้าเป็นส่วนหนึ่งของอิมเมจระบบ
นอกจากนี้ ผู้ใช้ยังนำแอปออกจากคลังด้วยตนเองได้ด้วย
ล้าสมัย
Google Play จะพิจารณาว่าแอปที่ติดตั้งในอุปกรณ์ล้าสมัยหรือไม่โดยดูที่รหัสเวอร์ชัน หากเวอร์ชันที่พร้อมให้ดาวน์โหลดใน Google Play มีรหัสเวอร์ชันสูงกว่าเวอร์ชันที่ติดตั้ง Google Play จะถือว่าแอปที่ติดตั้งล้าสมัย
แอปใน App Store หลายแห่ง
คุณควบคุมการอัปเดตข้ามร้านค้าได้ 2-3 วิธีเมื่อเผยแพร่แอปใน App Store หลายแห่ง ส่วนต่อไปนี้จะกล่าวถึงตัวเลือกเหล่านี้ รวมถึงข้อดีและข้อเสียที่อาจเกิดขึ้น
ป้องกันการอัปเดตข้ามร้านค้า
คุณอาจต้องการป้องกันไม่ให้ App Store แต่ละแห่งทำการอัปเดตแอปข้าม Store ให้กับแอปของคุณ คุณอาจเลือกดำเนินการนี้หากเนื้อหาของแอปแตกต่างกันไปใน App Store แต่ละแห่ง ซึ่งทำได้โดยการเผยแพร่แอปด้วยรหัสแอปพลิเคชัน 2 รหัสที่แตกต่างกัน หรือเผยแพร่แอปด้วยรหัสแอปพลิเคชันเดียวกันและคีย์การรับรอง 2 รายการที่แตกต่างกัน
คุณอาจต้องลดการนำคีย์การลงนามมาใช้ซ้ำเพื่อลดความเสี่ยงจากการบุกรุกคีย์ ดังนั้นให้ใช้คีย์ App Signing ที่แตกต่างกันสำหรับ App Store แต่ละแห่ง เนื่องจากการดำเนินการดังกล่าวจะป้องกันไม่ให้มีการอัปเดตข้ามร้านค้า
ไม่ว่าจะเลือกวิธีใด Android จะถือว่าแอปที่ไม่มีรหัสแอปพลิเคชันและคีย์การรับรองที่ตรงกันเข้ากันไม่ได้ ผู้ใช้ที่ต้องการเปลี่ยนจาก Store หนึ่งไปยังอีก Store หนึ่งจะต้องลบแอปที่ติดตั้งไว้ ซึ่งจะเป็นการลบข้อมูลทั้งหมดที่เชื่อมโยงกับแอปนั้น แล้วติดตั้งอีกครั้งจาก Store อีกร้านหนึ่ง
อนุญาตให้อัปเดตข้ามร้านค้า
คุณอาจต้องอนุญาตให้ App Store แต่ละแห่งทำการอัปเดตแอปข้าม Store สําหรับแอปของคุณ คุณอาจเลือกดำเนินการเช่นนี้หากเผยแพร่แอปที่มีเนื้อหาเดียวกันใน App Store ทั้งหมดและต้องการให้ความสําคัญกับผู้ใช้ที่อัปเดตอยู่เสมอ ตราบใดที่คุณใช้รหัสแอปพลิเคชันและคีย์การรับรองเดียวกันกับ App Store ทั้งหมดที่คุณเผยแพร่แอป App Store แต่ละแห่งจะอัปเดตการติดตั้งแอปของคุณได้ ไม่ว่าผู้ใช้จะดาวน์โหลดแอปจากที่ใดในตอนแรกก็ตาม
อย่างไรก็ตาม การดำเนินการนี้อาจทําให้ผู้ใช้พบปัญหาที่ไม่คาดคิด ทั้งนี้ขึ้นอยู่กับวิธีที่แต่ละ App Store เลือกใช้การอัปเดตแอปข้าม Store เช่น ผู้ใช้อาจปิดใช้การอัปเดตจาก Store หนึ่งโดยไม่รู้ตัวว่า Store อีกแห่งอาจยังให้บริการอัปเดตต่อไป
หากก่อนหน้านี้คุณอนุญาตให้อัปเดตข้าม Store แต่ต้องการเริ่มกำหนดแหล่งที่มาของการอัปเดตที่ต้องการเมื่อมีการอัปเดตนั้นในอุปกรณ์ คุณสามารถเผยแพร่แอปด้วยรหัสเวอร์ชันที่สูงกว่าใน App Store ที่ต้องการ และเผยแพร่ด้วยรหัสเวอร์ชันที่ต่ำกว่าใน App Store อื่นๆ ต่อได้ เมื่อติดตั้งการอัปเดตโค้ดเวอร์ชันที่สูงขึ้นจากแหล่งที่มาที่ต้องการแล้ว App Store อื่นๆ จะอัปเดตข้ามในอุปกรณ์นั้นไม่ได้