Version Code: คืออะไร ตัวระบุตัวเลข และการอัปเดต

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-04-17 เวลาอ่าน: 8 นาที

Version Code คือจำนวนเต็มบวกในการพัฒนา Android ที่ระบุแต่ละบิลด์ใหม่ของแอปพลิเคชันอย่างไม่ซ้ำกัน Google Play และระบบ Android ใช้ Version Code เพื่อพิจารณาว่าจำเป็นต้องอัปเดตหรือไม่: หากโค้ดของบิลด์ใหม่มากกว่าที่ติดตั้งไว้ กระบวนการอัปเดตจะเริ่มต้นขึ้น ตาม เอกสารสำหรับนักพัฒนา Android Version Code จะไม่แสดงให้ผู้ใช้เห็นและใช้สำหรับการกำหนดหมายเลขเวอร์ชันภายในเท่านั้น

ประเด็นสำคัญ

  • Version Code — ตัวระบุตัวเลขของบิลด์แอป Android สำหรับ Google Play
  • การเพิ่ม — แต่ละบิลด์ใหม่ต้องมี Version Code มากกว่าบิลด์ก่อนหน้า
  • Version Name — เวอร์ชันสตริงสำหรับผู้ใช้ ไม่ส่งผลต่อกลไกการอัปเดต
  • การกำหนดค่า ทำได้ใน build.gradle ผ่านฟิลด์ versionCode
  • ขีดจำกัด — ค่าสูงสุดของ Version Code คือ 2100000000

Version Code ใน Android คืออะไร

Version Code คือจำนวนเต็มชนิด Integer ที่กำหนดให้กับแต่ละบิลด์ของแอปพลิเคชัน Android ซึ่งแตกต่างจาก Version Name ตรงที่ Version Code ไม่แสดงให้ผู้ใช้เห็นและใช้โดยระบบปฏิบัติการและ Google Play เท่านั้นเพื่อเปรียบเทียบเวอร์ชันเมื่อติดตั้งอัปเดต

รูปแบบ Version Code

Version Code ต้องเป็นจำนวนเต็มบวกในช่วงตั้งแต่ 1 ถึง 2100000000 บิลด์ที่ตามมาแต่ละบิลด์ต้องมี Version Code มากกว่าบิลด์ก่อนหน้าอย่างเคร่งครัด หากนักพัฒนาเผยแพร่บิลด์ด้วย Version Code 5 การเผยแพร่ครั้งต่อไปสามารถใช้ 6, 7 หรือจำนวนใดๆ ที่มากกว่า 5 แต่ไม่ใช่ 4 และไม่ใช่ 5 ซ้ำ

ประวัติความเป็นมา

Google แนะนำการแบ่งแยกระหว่าง Version Code และ Version Name พร้อมกับการเปิดตัว Android SDK ในปี 2007 Version Code ถูกออกแบบให้เป็นตัวระบุเครื่องสำหรับการเปรียบเทียบเวอร์ชันอัตโนมัติ ในขณะที่ Version Name ถูกออกแบบให้เป็นป้ายชื่อที่มนุษย์อ่านได้ การแบ่งแยกนี้ช่วยให้นักพัฒนาสามารถตั้งชื่อเวอร์ชันตามต้องการในขณะที่รักษาลำดับการอัปเดตที่เคร่งครัดผ่านโค้ดตัวเลข

พารามิเตอร์Version CodeVersion Name
ชนิดข้อมูลIntegerString
การแสดงต่อผู้ใช้ไม่ใช่
การเปรียบเทียบเวอร์ชันการเปรียบเทียบตัวเลขไม่ใช้
รูปแบบ1, 2, 3, 10, 1001.0.0, 2.3.1-rc
ช่วง1 — 2100000000ไม่มีขีดจำกัด

การกำหนดเวอร์ชันผ่าน Version Code ทำงานอย่างไร

กลไกการเปรียบเทียบของ Version Code ถูกสร้างไว้ในระบบปฏิบัติการ Android และ Google Play Store ทุกครั้งที่เผยแพร่ Google Play จะตรวจสอบว่า Version Code ของบิลด์ใหม่มากกว่าโค้ดของเวอร์ชันที่ติดตั้งไว้ หากเงื่อนไขไม่เป็นไปตามนั้น การเผยแพร่จะถูกปฏิเสธพร้อมข้อผิดพลาด

กระบวนการตรวจสอบอัปเดต

เมื่ออุปกรณ์ติดต่อ Google Play เพื่อตรวจสอบอัปเดต เซิร์ฟเวอร์จะเปรียบเทียบ Version Code ของแอปพลิเคชันที่ติดตั้งกับค่าสูงสุดที่มีในร้านค้า หากโค้ดบนเซิร์ฟเวอร์มากกว่า การดาวน์โหลดและติดตั้งอัปเดตจะเริ่มต้นขึ้น ผู้ใช้เห็น Version Name ที่นักพัฒนากำหนด แต่การตัดสินใจอัปเดตจะขึ้นอยู่กับ Version Code

การเพิ่ม Version Code

นักพัฒนาใช้กลยุทธ์ต่างๆ ในการเพิ่ม Version Code วิธีที่ง่ายที่สุดคือเพิ่มทีละ 1 ในแต่ละบิลด์ สำหรับไปป์ไลน์ CI/CD มักใช้ timestamp หรือหมายเลขบิลด์: 2026070301 (ปี-เดือน-วัน-หมายเลข) สิ่งสำคัญคือโค้ดต้องเพิ่มขึ้นแบบโมโนโทนิกและไม่ซ้ำกันระหว่างบิลด์และแทร็กของ Google Play ที่แตกต่างกัน

  • การเพิ่มแบบโมโนโทนิก — เพิ่มทีละ 1 เมื่อมีการคอมมิตในสาขารีลีส
  • รูปแบบ timestamp — 20260703 สำหรับบิลด์รายวัน, 2026070301 สำหรับหลายบิลด์ต่อวัน
  • SemVer ในตัวเลข — 100010000 สำหรับเวอร์ชัน 1.1.0 (major 1, minor 1, patch 0)
  • หมายเลขบิลด์ — การใช้ BUILD_NUMBER จากระบบ CI (Jenkins, GitHub Actions)

ความแตกต่างระหว่าง Version Code และ Version Name

Version Code และ Version Name เป็นสองฟิลด์อิสระใน build.gradle ที่ทำหน้าที่ต่างกัน Version Code เป็นตัวระบุภายในสำหรับระบบ Version Name เป็นป้ายชื่อทางการตลาดสำหรับผู้ใช้ ทั้งสองสามารถเปลี่ยนแปลงได้อย่างอิสระจากกัน

Version Name สำหรับผู้ใช้

Version Name คือสตริงที่แสดงในการตั้งค่าแอปพลิเคชัน ใน Google Play และในไดอะล็อกอัปเดต นักพัฒนาสามารถระบุรูปแบบใดก็ได้: 1.0.0, 2.3.1-beta, 3.0-rc1 Version Name ไม่ได้ใช้สำหรับเปรียบเทียบเวอร์ชันสตริง — Google Play ขึ้นอยู่กับ Version Code เสมอ

สถานการณ์ความแตกต่าง

เป็นไปได้ที่ Version Code จะเพิ่มขึ้นในขณะที่ Version Name ยังคงเหมือนเดิม ตัวอย่างเช่น หากนักพัฒนาแก้ไขบั๊กที่สำคัญในบิลด์ hotfix โดยไม่เปลี่ยนแปลงฟังก์ชันการทำงาน Version Name ยังคงเป็น 2.0.0 ในขณะที่ Version Code เปลี่ยนจาก 5 เป็น 6 Google Play จะจัดการอัปเดตดังกล่าวอย่างถูกต้อง

groovy
// ตัวอย่าง: version name ไม่เปลี่ยนแปลง โค้ดเพิ่มขึ้น
android {
    defaultConfig {
        versionCode 6  // เคยเป็น 5 — hotfix โดยไม่มีฟีเจอร์ใหม่
        versionName "2.0.0"  // ไม่เปลี่ยนแปลง
    }
}

// การตรวจสอบเวอร์ชันใน runtime
val code = BuildConfig.VERSION_CODE
val name = BuildConfig.VERSION_NAME
println("Code: $code, Name: $name")

การกำหนดค่า Version Code ใน build.gradle

การกำหนดค่า Version Code ทำได้ในไฟล์ build.gradle ของโมดูลแอปพลิเคชัน ฟิลด์ versionCode รับจำนวนเต็มและเป็นส่วนหนึ่งของบล็อก defaultConfig สำหรับบิลด์ flavor ที่แตกต่างกัน สามารถกำหนดค่าแบบกำหนดเองได้ผ่านฟิลด์ versionCode ในการกำหนดค่าผลิตภัณฑ์

การกำหนดค่าพื้นฐาน

kotlin
// build.gradle.kts — Kotlin DSL
android {
    defaultConfig {
        applicationId "com.example.app"
        versionCode 15
        versionName "2.1.0"
    }

    flavorDimensions +"version"
    productFlavors {
        create("demo") {
            versionCode 1015
        }
        create("full") {
            versionCode 2015
        }
    }
}

Product flavors อนุญาตให้ใช้ Version Code ที่แตกต่างกันสำหรับการกำหนดค่าที่แตกต่างกัน: เวอร์ชันสาธิต, เวอร์ชันแยกสำหรับแท็บเล็ต หากใช้ flavors ในโปรเจกต์ Version Code สุดท้ายจะประกอบด้วยหมายเลขฐานและการเพิ่มเฉพาะ flavor Google Play ติดตามแต่ละชุดค่าผสมอย่างอิสระ

การอัตโนมัติการเพิ่มผ่าน CI

ใน ไปป์ไลน์ CI/CD (GitHub Actions, GitLab CI, Jenkins) Version Code มักถูกสร้างขึ้นโดยอัตโนมัติตามหมายเลขบิลด์หรือวันที่ ซึ่งช่วยขจัดข้อผิดพลาดของมนุษย์ในการอัปเดตด้วยตนเอง สคริปต์จะอ่าน Version Code ปัจจุบันจาก build.gradle เพิ่มค่า และเขียนกลับก่อนเริ่มบิลด์

kotlin
// การเพิ่ม Version Code อัตโนมัติ
import java.util.Properties
import java.io.FileInputStream

val versionProps = Properties()
versionProps.load(FileInputStream("version.properties"))

val versionCode = versionProps.getProperty("VERSION_CODE").toInt() + 1
versionProps.setProperty("VERSION_CODE", versionCode.toString())

android {
    defaultConfig {
        versionCode = versionCode
    }
}

ลักษณะเฉพาะของ Version Code สำหรับการเผยแพร่บน Google Play

Google Play มีกฎที่เข้มงวดสำหรับ Version Code เมื่อเผยแพร่และอัปเดตแอปพลิเคชัน การละเมิดกฎเหล่านี้นำไปสู่การปฏิเสธบิลด์หรือไม่สามารถเผยแพร่อัปเดตได้ นักพัฒนาจำเป็นต้องเข้าใจข้อจำกัดและกลยุทธ์การจัดการโค้ดในทุกขั้นตอนของวงจรชีวิต

กฎการเพิ่มแบบโมโนโทนิก

Google Play ไม่อนุญาตให้อัปโหลด APK หรือ AAB ที่มี Version Code น้อยกว่าหรือเท่ากับที่เผยแพร่ในปัจจุบัน กฎนี้ใช้กับแต่ละแทร็ก (production, beta, alpha) อย่างอิสระ หากอัปโหลดบิลด์ด้วย Version Code 10 ใน production และบิลด์ด้วยโค้ด 5 ใน alpha แทร็ก alpha สามารถอัปเดตเป็น 6, 7, 8 หรือ 9 แต่ production ยังคงอยู่ที่ 10

การโยกย้ายระหว่างแทร็ก

เมื่อเลื่อนระดับบิลด์จาก alpha เป็น beta และจากนั้นเป็น production Version Code ต้องเพิ่มขึ้นในแต่ละขั้นตอน หากเวอร์ชัน alpha มีโค้ด 10 beta สามารถใช้ 11 และ production ใช้ 12 คุณไม่สามารถเผยแพร่บิลด์ด้วยโค้ด 10 ไปยัง production หาก alpha ใช้ 10 อยู่แล้ว แม้ว่า production จะยังไม่เห็นก็ตาม

  • การเพิ่มแบบโมโนโทนิก — แต่ละบิลด์ในแทร็กมี Version Code มากกว่าบิลด์ก่อนหน้าในแทร็กเดียวกัน
  • การรับรู้ข้ามแทร็ก — เมื่อเลื่อนระดับระหว่างแทร็ก Version Code จะเพิ่มขึ้นตามลำดับ
  • การทดสอบภายใน — แทร็กการทดสอบภายในใช้กฎความโมโนโทนิกเดียวกัน
  • APK หลายรายการ — รูปแบบการเผยแพร่แบบเก่าต้องการ Version Code ที่ไม่ซ้ำกันสำหรับแต่ละ APK

ข้อผิดพลาดในการระบุ Version Code

ข้อผิดพลาดที่พบบ่อยที่สุดคือการตรงกันของ Version Code ในบิลด์ต่างๆ ที่อัปโหลดไปยังแทร็กเดียวกัน Google Play ส่งคืนข้อผิดพลาด APK_VERSION_CODE_ALREADY_EXISTS ข้อผิดพลาดอีกประการคือการเกินค่าสูงสุด 2100000000 ซึ่งทำให้การคอมไพล์ล้มเหลว เพื่อหลีกเลี่ยงความขัดแย้ง ให้ใช้การสร้างโค้ดอัตโนมัติในระบบ CI ของคุณที่เชื่อมโยงกับหมายเลขบิลด์หรือวันที่บิลด์

นักพัฒนามักทำผิดพลาดโดยไม่เพิ่ม Version Code เมื่อสร้างรีลีส hotfix สำหรับแทร็กทางเลือก หาก production มีโค้ด 15 และแทร็ก alpha ยังคงอยู่ที่ 14 เมื่อเลื่อนระดับ alpha เป็น production Google Play จะปฏิเสธบิลด์เนื่องจากโค้ดของมันน้อยกว่าโค้ด production ปัจจุบัน ตรวจสอบความโมโนโทนิกของโค้ดในทุกแทร็กพร้อมกัน — สำหรับสิ่งนี้ สะดวกในการใช้ไฟล์ version.properties เดียวที่ทุกแทร็กอ่านค่าปัจจุบัน

คำถามที่พบบ่อย

ฉันสามารถเผยแพร่อัปเดตด้วย Version Code ที่ต่ำกว่าปัจจุบันได้หรือไม่?

ไม่ Google Play ไม่อนุญาตให้อัปโหลดบิลด์ที่มี Version Code น้อยกว่าหรือเท่ากับที่เผยแพร่ในปัจจุบันในแทร็กเดียวกัน ระบบตรวจสอบโค้ดเมื่ออัปโหลดและส่งคืนข้อผิดพลาดหากกฎการเพิ่มแบบโมโนโทนิกถูกละเมิด สำหรับแทร็ก alpha และ beta ใช้หลักการเดียวกันอย่างอิสระ

ฉันควรระบุ Version Code ใดสำหรับการเผยแพร่แอปครั้งแรก?

สำหรับการเผยแพร่ครั้งแรก คุณสามารถระบุ Version Code 1 Google Play ไม่กำหนดเกณฑ์ขั้นต่ำอื่นนอกเหนือจากจำนวนเต็มบวก ขอแนะนำให้เริ่มต้นด้วย 1 และเพิ่มทีละ 1 ในแต่ละบิลด์ถัดไป หากคุณใช้รูปแบบ timestamp บิลด์แรกอาจเป็น 20260701

Version Code เกี่ยวข้องกับ Version Name ใน Google Play อย่างไร?

Version Code เป็นตัวระบุเครื่องภายในที่ระบบใช้สำหรับการเปรียบเทียบ Version Name เป็นป้ายชื่อสำหรับผู้ใช้ที่แสดงใน Google Play และบนอุปกรณ์ ผู้ใช้เห็น Version Name (เช่น 2.0.0) ในขณะที่ Google Play ใช้ Version Code เพื่อพิจารณาว่าจำเป็นต้องอัปเดตหรือไม่

จะเกิดอะไรขึ้นหากเกินค่าสูงสุดของ Version Code?

ค่าสูงสุดของ Version Code คือ 2100000000 (Integer.MAX_VALUE) หากเกิน คอมไพเลอร์จะส่งคืนข้อผิดพลาดเนื่องจากฟิลด์เป็นชนิด int สำหรับโปรเจกต์ที่มีจำนวนบิลด์มาก (CI/CD ที่มีรีลีสรายวัน) ขอแนะนำให้ใช้รูปแบบ timestamp หรือรีเซ็ตตัวนับเมื่อเริ่มเวอร์ชัน major

สามารถใช้ Version Code สำหรับการทดสอบ A/B ได้หรือไม่?

Version Code ไม่ได้ใช้โดยตรงสำหรับการทดสอบ A/B แต่มีผลทางอ้อม Google Play อนุญาตให้กำหนดค่าการเผยแพร่แบบ staged rollout ตามเปอร์เซ็นต์ของผู้ใช้สำหรับบิลด์เฉพาะ Version Code ระบุบิลด์ ในขณะที่การทดสอบ A/B ถูกกำหนดค่าผ่าน Firebase Remote Config หรือบริการที่คล้ายกัน

สรุป

  • Version Code — จำนวนเต็มที่ระบุแต่ละบิลด์ของแอปพลิเคชัน Android อย่างไม่ซ้ำกัน
  • Google Play ใช้ Version Code เพื่อพิจารณาว่าจำเป็นต้องอัปเดตแอปหรือไม่
  • กฎการเพิ่ม — แต่ละบิลด์ใหม่ต้องมีโค้ดมากกว่าบิลด์ก่อนหน้าอย่างเคร่งครัดในแทร็กเดียวกัน
  • ช่วงค่า — ตั้งแต่ 1 ถึง 2100000000 (Integer.MAX_VALUE)
  • Version Name — ป้ายชื่อสตริงสำหรับผู้ใช้ ไม่ส่งผลต่อกลไกการอัปเดต
  • อัตโนมัติ — ระบบ CI/CD สามารถสร้าง Version Code จากหมายเลขบิลด์หรือ timestamp
  • คำแนะนำ — เลือกกลยุทธ์การเพิ่มก่อนเผยแพร่และยึดมั่นตลอดวงจรชีวิตทั้งหมด

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม