versionCode กับ versionName ใน Android Manifest


223

ฉันมีแอพของฉันในตลาด Android พร้อมรหัสเวอร์ชัน = 2 และชื่อรุ่น = 1.1

อย่างไรก็ตามในขณะที่อัปเดตในวันนี้ฉันเปลี่ยนรหัสเวอร์ชัน = 3 ในไฟล์ Manifest แต่โดยไม่ได้ตั้งใจเปลี่ยนชื่อเวอร์ชันเป็น 1.0.1 และอัปโหลด apk ไปยังตลาด

ตอนนี้ผู้ใช้แอพของฉันจะได้รับการแจ้งเตือนการอัพเดตทางโทรศัพท์หรือไม่? หรือฉันควรทำซ้ำกระบวนการอีกครั้ง?


1
ลองลิงค์นี้มันจะช่วยคุณ .. " developer.android.com/tools/publishing/
......

พวกเขาควรตามที่คุณเพิ่มรหัสรุ่น ซึ่งในทางทฤษฎีเป็นสิ่งที่ใช้เป็นตัวบ่งชี้การอัพเดท
superUser

@ user838522 คุณช่วยกรุณาทำเครื่องหมายคำตอบที่โหวตมากที่สุดเป็นคำตอบที่เลือกได้หรือไม่?
xarlymg89

@ CarlosAlbertoMartínezGadea: user838522 มีคนเห็นครั้งล่าสุดในปี 2013
serv-inc

คำตอบ:


610

ลิงค์อ้างอิง

หุ่นยนต์: versionCode

หมายเลขเวอร์ชันภายใน หมายเลขนี้ใช้เพื่อตรวจสอบว่ารุ่นใดรุ่นหนึ่งล่าสุดกว่ารุ่นอื่นเท่านั้นโดยตัวเลขที่สูงกว่าจะระบุรุ่นที่ใหม่กว่า นี่ไม่ใช่หมายเลขเวอร์ชันที่แสดงต่อผู้ใช้ หมายเลขนั้นถูกตั้งค่าโดยแอตทริบิวต์ versionName ต้องตั้งค่าเป็นจำนวนเต็มเช่น "100" คุณสามารถกำหนดได้ตามที่คุณต้องการตราบใดที่แต่ละรุ่นที่ต่อเนื่องกันมีจำนวนที่สูงกว่า [ ... ]

หุ่นยนต์: versionName

ชื่อรุ่นที่แสดงให้ผู้ใช้เห็น แอ็ตทริบิวต์นี้สามารถตั้งค่าเป็นสตริงดิบหรืออ้างอิงถึงทรัพยากรสตริง สตริงไม่มีวัตถุประสงค์อื่นนอกเหนือจากที่จะแสดงต่อผู้ใช้ คุณลักษณะ versionCode เก็บหมายเลขรุ่นที่สำคัญที่ใช้ภายใน

เมื่ออ่านแล้วมันค่อนข้างชัดเจนว่า versionName เป็นเพียงสิ่งที่ปรากฏแก่ผู้ใช้ versionCode เป็นสิ่งที่สำคัญ เพียงเพิ่มขึ้นเรื่อย ๆ และทุกอย่างจะดี


1
นั่นหมายความว่าไม่มีความสัมพันธ์ทางคณิตศาสตร์ระหว่างทั้งสอง ใช่ไหม?
Vinil Chandran

ที่อธิบายการปรับปรุงเงียบซึ่งดูเหมือนจะเป็นรุ่นเดียวกัน
E. Sundin

11
เพื่อเพิ่มหมายเหตุเท่านั้น: ค่าที่ยิ่งใหญ่ที่สุดที่ Google Play อนุญาตสำหรับ versionCode คือ 2100000000
Atul

1
จำเป็นหรือไม่ที่ต้องรวมความแตกต่างของรหัสเวอร์ชั่นระหว่าง vesrion ที่อัปเดตกับแอปเวอร์ชันก่อนหน้าใน play store ให้เป็น 1
Sivaram Boina

@ sivaram ไม่เลย
ไม่ทราบ

30

ไม่จำเป็นต้องย้อนกลับขั้นตอนของคุณ เมื่อคุณเพิ่ม VersionCode ของคุณหมายความว่าแอปพลิเคชันของคุณได้อัปเกรดแล้ว VersionName เป็นเพียงสตริงที่ผู้ใช้สามารถอ่านได้ Google play ไม่ดำเนินการใด ๆ ขึ้นอยู่กับ VersionName


9

รหัสเวอร์ชั่นถูกใช้โดย google play store สำหรับการอัพเดทใหม่ และชื่อรุ่นจะปรากฏต่อผู้ใช้ หากคุณมีรหัสเวอร์ชั่นที่เพิ่มขึ้นการอัพเดทจะปรากฏแก่ผู้ใช้ทุกคน

สำหรับรายละเอียดเพิ่มเติมแจ้งให้คุณทราบ 2 นาทีในการอ่านบทความนี้https://developer.android.com/studio/publish/versioning.html


6

ฉันจะให้การตีความของฉันของเอกสารเดียวที่ฉันสามารถหาได้ในเรื่อง

"ตัวอย่างเช่นเพื่อตรวจสอบความสัมพันธ์ในการอัปเกรดหรือดาวน์เกรด" <- คุณสามารถดาวน์เกรดแอปได้

"คุณควรตรวจสอบให้แน่ใจว่าแต่ละแอปพลิเคชันที่เปิดตัวต่อเนื่องของคุณใช้ค่าที่มากกว่านี้ระบบจะไม่บังคับใช้พฤติกรรมนี้" <- จำนวนควรเพิ่มขึ้นจริง ๆ แต่คุณยังสามารถดาวน์เกรดแอปได้

android: versionCode - ค่าจำนวนเต็มที่แทนรุ่นของรหัสแอปพลิเคชันซึ่งสัมพันธ์กับเวอร์ชันอื่น ค่าเป็นเลขจำนวนเต็มเพื่อให้แอปพลิเคชันอื่นสามารถประเมินค่าทางโปรแกรมตัวอย่างเช่นเพื่อตรวจสอบความสัมพันธ์ในการอัพเกรดหรือดาวน์เกรด คุณสามารถตั้งค่าเป็นจำนวนเต็มใด ๆ ที่คุณต้องการอย่างไรก็ตามคุณควรตรวจสอบให้แน่ใจว่าแต่ละแอปพลิเคชันของคุณใช้งานได้อย่างต่อเนื่อง ระบบไม่ได้บังคับใช้พฤติกรรมนี้ แต่การเพิ่มมูลค่าด้วยการเผยแพร่ต่อเนื่องเป็นบรรทัดฐาน โดยทั่วไปคุณจะปล่อยเวอร์ชันแรกของแอปพลิเคชันของคุณด้วย versionCode ที่ตั้งค่าเป็น 1 จากนั้นเพิ่มค่าที่น่าเบื่อหน่ายในแต่ละรุ่นโดยไม่คำนึงว่ารุ่นนั้นเป็นรุ่นใหญ่หรือรุ่นรอง ซึ่งหมายความว่า Android: ค่า versionCode ไม่จำเป็นต้องมีความคล้ายคลึงอย่างมากกับรุ่นที่วางจำหน่ายแอปพลิเคชันที่ผู้ใช้สามารถมองเห็นได้ (ดู android: versionName, ด้านล่าง) แอปพลิเคชันและบริการเผยแพร่ไม่ควรแสดงค่าเวอร์ชันนี้แก่ผู้ใช้


2
ฉันจะทิ้งมันไว้ที่นี่ได้ไหม? เพราะฉันคิดว่าระบบ Android จะตรวจสอบการอัปเดตแอปตามรหัสเวอร์ชั่นแทนหมายเลขเวอร์ชั่น ช่วยแก้ให้ด้วยนะถ้าฉันผิด.
user838522

5

android: versionCode - ค่าจำนวนเต็มที่แทนรุ่นของรหัสแอปพลิเคชันซึ่งสัมพันธ์กับเวอร์ชันอื่น

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

android: versionName - ค่าสตริงที่แทนรุ่นของรหัสแอปพลิเคชันตามที่ควรแสดงต่อผู้ใช้

ค่าเป็นสตริงเพื่อให้คุณสามารถอธิบายเวอร์ชันของแอปพลิเคชันเป็นสตริง .. หรือเป็นตัวระบุเวอร์ชันแบบสัมบูรณ์หรือแบบสัมพัทธ์ชนิดอื่น ๆ

เช่นเดียวกับ android: versionCode ระบบจะไม่ใช้ค่านี้เพื่อวัตถุประสงค์ภายในใด ๆ นอกเหนือจากเพื่อเปิดใช้งานแอปพลิเคชันเพื่อแสดงให้ผู้ใช้เห็น บริการเผยแพร่อาจแตก android: ค่า versionName สำหรับแสดงต่อผู้ใช้

โดยทั่วไปคุณจะปล่อยเวอร์ชันแรกของแอปพลิเคชันของคุณด้วย versionCode ที่ตั้งค่าเป็น 1 จากนั้นเพิ่มค่าที่น่าเบื่อหน่ายในแต่ละรุ่นโดยไม่คำนึงว่ารุ่นนั้นเป็นรุ่นใหญ่ ซึ่งหมายความว่าค่า android: versionCode ไม่จำเป็นต้องมีความคล้ายคลึงอย่างมากกับรุ่นที่วางจำหน่ายแอปพลิเคชันที่ผู้ใช้สามารถมองเห็นได้ (ดู android: versionName ด้านล่าง) แอปพลิเคชันและบริการเผยแพร่ไม่ควรแสดงค่ารุ่นนี้ให้กับผู้ใช้


5

มันขึ้นอยู่กับ versionCode และไม่ได้อยู่ใน versionName อย่างไรก็ตามฉันสังเกตเห็นว่าการเปลี่ยน versionCode ใน AndroidManifest.xml นั้นไม่เพียงพอกับระบบ Android Studio - Gradle build ฉันต้องการเปลี่ยนมันใน build.gradle


5

รหัส ตัวแทนรุ่นเวอร์ชั่นรหัสของคุณ Android OS ตรวจสอบการอัปเดตโดยใช้ตัวแปรนี้ว่ารหัสนี้เก่าหรือใหม่

ชื่อรุ่นชื่อ ตัวแทนของรุ่นในรูปแบบ -

(สาขา). (ไมเนอร์). (จุด)

สตริงที่ใช้สำหรับสตริงที่อ่านได้เท่านั้นรหัสรุ่นที่ใช้งานได้ถูกใช้โดยระบบปฏิบัติการ


4

รหัสเวอร์ชั่น - มันเป็นจำนวนเต็มบวกที่ใช้สำหรับการเปรียบเทียบกับรหัสรุ่นอื่น ๆ ไม่ได้แสดงต่อผู้ใช้ แต่เป็นเพียงการเก็บบันทึก คุณสามารถตั้งค่าเป็นจำนวนเต็มใดก็ได้ที่คุณต้องการ แต่แนะนำให้คุณเพิ่มมันแบบเชิงเส้นสำหรับเวอร์ชั่นต่อเนื่อง

ชื่อรุ่น - นี่คือสตริงรุ่นที่ผู้ใช้เห็น มันไม่ได้ใช้สำหรับการเปรียบเทียบภายในหรืออะไรก็ตามมันเป็นเพียงเพื่อให้ผู้ใช้เห็น

ตัวอย่างเช่นสมมติว่าคุณปล่อยแอพ versionCode เริ่มต้นอาจเป็น 1 และ versionName อาจเป็น 1 เมื่อคุณทำการเปลี่ยนแปลงเล็กน้อยในแอพและต้องการเผยแพร่การอัปเดตคุณจะต้องกำหนด versionName เป็น "1.1" (เนื่องจากการเปลี่ยนแปลง ไม่ใช่สิ่งสำคัญ) ในขณะที่ versionCode ของคุณควรเป็น 2 (ไม่คำนึงถึงขนาดการเปลี่ยนแปลง)

พูดในอีกสภาวะหนึ่งว่าคุณปล่อยแอพเวอร์ชันปรับปรุงใหม่ทั้งหมดคุณสามารถตั้ง versionCode และ versionName เป็น "2"

หวังว่าจะช่วย

คุณสามารถอ่านเพิ่มเติมได้ที่นี่


0

ให้หมายเลขเวอร์ชัน MAJOR.MINOR.PATCH เพิ่มค่า:


  • รุ่น MAJOR เมื่อคุณทำการเปลี่ยนแปลง API ที่เข้ากันไม่ได้
  • รุ่นรองเมื่อคุณเพิ่มฟังก์ชันการทำงานในลักษณะที่เข้ากันได้ย้อนหลังและ
  • รุ่น PATCH เมื่อคุณทำการแก้ไขข้อบกพร่องที่เข้ากันได้ย้อนหลัง

รหัสเวอร์ชั่น & ชื่อรุ่น

อย่างที่คุณอาจทราบเกี่ยวกับแอนดรอยด์คุณต้องกำหนดฟิลด์เวอร์ชันสองสำหรับแอพ: รหัสเวอร์ชัน (android: versionCode) และชื่อเวอร์ชัน (android: versionName) รหัสเวอร์ชันเป็นค่าจำนวนเต็มส่วนเพิ่มที่แทนรุ่นของรหัสแอปพลิเคชัน ชื่อรุ่นเป็นค่าสตริงที่แสดงถึงชื่อรุ่น“ เป็นมิตร” ที่แสดงต่อผู้ใช้


0

คำตอบจากTanohสามารถใช้การชี้แจงบาง VersionCode เทียบเท่ากับหมายเลขบิลด์ ดังนั้นโดยทั่วไปแล้วแอปจะต้องผ่านการทำซ้ำหลายครั้งก่อนปล่อย การทำซ้ำเหล่านี้บางอย่างอาจนำไปใช้กับร้านค้า Google Play ในรูปแบบของอัลฟาเบต้าและการเผยแพร่จริง การวนซ้ำแบบต่อเนื่องแต่ละครั้งจะต้องมีการเพิ่ม versionCode อย่างไรก็ตามโดยทั่วไปคุณจะเพิ่ม versionName เฉพาะเมื่ออยู่ระหว่างการเผยแพร่สู่สาธารณะ ตัวเลขทั้งสองมีความหมาย ผู้ใช้ของคุณจำเป็นต้องทราบว่ารุ่นที่พวกเขามีในโทรศัพท์เป็นรุ่นล่าสุดหรือไม่ (versionName) และระบบ Play Store และ CI เช่น bitrise ขึ้นอยู่กับและ / หรืออัปเดตหมายเลขบิลด์ (versionCode)

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