ฉันต้องอัปโหลดแอปพลิเคชันใหม่เพียงแค่การออกแบบที่แตกต่างกันเล็กน้อย เมื่อวานนี้ฉันสร้างไฟล์ที่เก็บคีย์เพื่อลงนามแอปพลิเคชัน ใช้แบบเดิมได้ไหม
ฉันต้องอัปโหลดแอปพลิเคชันใหม่เพียงแค่การออกแบบที่แตกต่างกันเล็กน้อย เมื่อวานนี้ฉันสร้างไฟล์ที่เก็บคีย์เพื่อลงนามแอปพลิเคชัน ใช้แบบเดิมได้ไหม
คำตอบ:
คุณสามารถใช้keystore
สำหรับแอปพลิเคชันจำนวนเท่าใดก็ได้
ไม่จำเป็นต้องสร้างที่เก็บคีย์ใหม่
จนถึงตอนนี้ฉันจะโต้แย้งคำตอบของฉันทามติ
ฉันยอมรับว่าสำหรับผู้เขียนแอปส่วนใหญ่การแชร์คีย์สโตร์ / ใบรับรอง / รหัสผ่านเดียวกันระหว่างแอปของคุณจะทำงานได้ดี สิ่งสำคัญคือการใช้ " ใบรับรองเดียวกันตลอดอายุการใช้งานที่คาดไว้ของแอปพลิเคชันของคุณ " เพื่อให้แอปอัปเกรดตัวเองได้
แต่ฉันสามารถนึกถึงเหตุผลที่ดีอย่างหนึ่งที่จะต้องมีที่เก็บคีย์แยกต่างหากสำหรับแอปหรือตระกูลแอปแยกกัน หากคุณคิดว่าคุณอาจต้องการขายแอปให้คนอื่นเพื่อเผยแพร่เป็นการอัปเกรดเป็นเวอร์ชันดั้งเดิมคุณจะต้องแชร์ที่เก็บคีย์และรหัสผ่านแบบหนึ่งเดียวของคุณกับพวกเขาก่อน อาจไม่ใช่ปัญหาใหญ่ แต่เป็นเรื่องที่น่ากังวลสำหรับคุณและอาจเป็นปัญหาเรื่องการตรวจสอบสถานะสำหรับผู้ซื้อรายใหญ่
นอกจากนี้ฉันไม่ได้อ่านบรรทัดเดียวกันในเอกสารเช่นเดียวกับที่ @ol_v_er อ่าน ฉันคิดว่าบรรทัดปัจจุบัน:
คุณควรลงนามแอปทั้งหมดของคุณด้วยใบรับรองเดียวกันตลอดอายุการใช้งานที่คาดไว้ของแอปพลิเคชันของคุณ
(โปรดทราบว่าเวอร์ชันปัจจุบันไม่มีเครื่องหมายจุลภาค) เป็นการเน้นย้ำว่าคำแนะนำ "อายุการใช้งาน" ใช้กับแอปทั้งหมดไม่ได้ชี้นำให้คุณใช้ใบรับรองเดียวกันสำหรับแอปทั้งหมดของคุณ
เอกสารอย่างเป็นทางการบอกเรา:
โดยทั่วไปกลยุทธ์ที่แนะนำสำหรับนักพัฒนาทุกคนคือการลงนามแอปพลิเคชันทั้งหมดของคุณด้วยใบรับรองเดียวกันตลอดอายุการใช้งานที่คาดไว้ของแอปพลิเคชันของคุณ มีสาเหตุหลายประการที่คุณควรทำ ...
https://developer.android.com/studio/publish/app-signing.html#considerations
ใช่ลองลงชื่อแอปพลิเคชันทั้งหมดของคุณด้วยใบรับรองเดียวกัน
ฉันต้องการเพิ่มคำชี้แจงที่นี่เนื่องจากคำถามนี้และคำตอบที่ให้ไว้ทำให้ฉันสับสน สิ่งสำคัญคือต้องทำความเข้าใจว่าที่เก็บคีย์คืออะไร
ที่เก็บคีย์เป็นเพียงวิธีการจัดเก็บคู่คีย์สาธารณะ / ส่วนตัวอย่างปลอดภัยซึ่งใช้ในการลงนามแอป Android ของคุณ ใช่คุณสามารถใช้ที่เก็บคีย์เดียวกันเพื่อลงนามหลายแอพได้โดยไม่มีปัญหา คุณยังสามารถใช้นามแฝงเดียวกัน (แต่ละนามแฝงคือใบรับรอง) เพื่อลงนามหลาย apks และจะใช้งานได้ อย่างไรก็ตามมีผลกระทบด้านความปลอดภัย หากนามแฝงเดียวของคุณถูกบุกรุกแอปทั้งหมดของคุณจะถูกบุกรุก
อย่างไรก็ตามหากคุณตั้งใจจะขายสิทธิ์ในแอปของคุณในวันหนึ่งการใช้นามแฝงเดียวกันสำหรับแอปทั้งหมดของคุณอาจไม่ใช่ความคิดที่ดี อย่างไรก็ตามการใช้ที่เก็บคีย์เดียวกันหากคุณใช้นามแฝงที่แตกต่างกันสำหรับแต่ละ apk อาจไม่ใช่ตัวเลือกที่ไม่ดีเสมอไป ฉันแน่ใจว่ามีวิธีที่คุณสามารถย้ายใบรับรองจากที่เก็บคีย์หนึ่งไปยังอีกที่หนึ่งเพื่อให้คุณสามารถให้คีย์ที่จำเป็นสำหรับใบรับรองนั้นแก่ผู้ซื้อของคุณได้อย่างปลอดภัย
เพื่อให้ชัดเจนมากที่เก็บคีย์ก็เป็นเพียงสื่อบันทึกข้อมูลสำหรับคีย์ ไม่มีส่วนสำคัญในกระบวนการลงนาม apk แต่ทำหน้าที่เก็บคีย์ที่ใช้ในการลงนาม apk เท่านั้น
อ้างอิง:
การทำความเข้าใจที่เก็บคีย์ใบรับรองและนามแฝง
https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores
แน่นอน! คุณสามารถใช้ไฟล์ที่เก็บคีย์เดียวกันได้หลายครั้งที่คุณต้องการ การใช้ไฟล์ที่เก็บคีย์เดียวกันกับแอปพลิเคชันทั้งหมดที่คุณพัฒนาจะดีกว่าเสมอ ซึ่งจะช่วยได้หากคุณต้องการอัปเดตหรือแก้ไขแอปพลิเคชัน ในเวลานั้นคุณต้องลงนามใบสมัครของคุณด้วยรหัสเดียวกัน
ฉันลงนามแอปทั้งหมดของฉันโดยใช้ใบรับรองเดียวกัน (ที่เก็บคีย์) สิ่งนี้จะให้ประโยชน์หากฉันเปลี่ยนใจและต้องการให้แอปของฉันแชร์ข้อมูล
ดังที่คุณอาจทราบว่า Android ระบุแต่ละแอปด้วย UID หากแอปทั้งหมดของคุณลงนามโดยใบรับรองเดียวกันคุณสามารถขอให้ Android กำหนดรหัสผู้ใช้เดียวกันได้มากกว่าหนึ่งแอปและส่งต่อให้แอปทำงานในกระบวนการเดียวและแชร์ข้อมูล
จาก android doc android: sharedUserId
android: sharedUserId
ชื่อของ ID ผู้ใช้ Linux ที่จะแชร์กับแอปพลิเคชันอื่น โดยค่าเริ่มต้น Android จะกำหนดให้แต่ละแอปพลิเคชันมี ID ผู้ใช้เฉพาะของตนเอง อย่างไรก็ตามหากตั้งค่าแอตทริบิวต์นี้เป็นค่าเดียวกันสำหรับแอปพลิเคชันตั้งแต่สองแอปพลิเคชันขึ้นไปแอปพลิเคชันทั้งหมดจะแชร์ ID เดียวกันโดยมีการลงนามโดยใบรับรองเดียวกัน แอปพลิเคชันที่มี ID ผู้ใช้เดียวกันสามารถเข้าถึงข้อมูลของกันและกันและหากต้องการให้เรียกใช้ในกระบวนการเดียวกัน
อัปเดตล่าสุด
หากคุณต้องการลงทะเบียนในการลงนามแอปโดย Googleคุณต้องใช้คีย์ใหม่ที่แตกต่างกันเพื่อลงนาม apk หรือกลุ่มของคุณมิฉะนั้นหลังจากอัปโหลดคอนโซลของ Google จะแสดงข้อความแสดงข้อผิดพลาดว่า
คุณอัปโหลด APK หรือ Android App Bundle ที่ลงนามด้วยคีย์ที่ใช้ในการลงนาม APK ที่ส่งถึงผู้ใช้ด้วย เนื่องจากคุณลงทะเบียนใน App Signing โดย Google Play คุณควรลงนาม APK หรือ Android App Bundle ด้วยคีย์ใหม่ก่อนที่จะอัปโหลด