การกำหนดเวอร์ชันเป็นองค์ประกอบสำคัญของการอัปเกรดและบำรุงรักษาแอป ของคุณ การกำหนดเวอร์ชันเป็นสิ่งสำคัญเนื่องจากเหตุผลต่อไปนี้
- ผู้ใช้ต้องมีข้อมูลเฉพาะเกี่ยวกับเวอร์ชันของแอปที่ ในอุปกรณ์ และเวอร์ชันอัปเกรดที่พร้อมใช้งานสำหรับ ของคุณ
- แอปอื่นๆ รวมถึงแอปอื่นๆ ที่คุณเผยแพร่ด้วย ชุดแอปจะต้องค้นหาระบบเพื่อดูเวอร์ชันของแอป ระบุความเข้ากันได้และระบุทรัพยากร Dependency
- บริการที่คุณเผยแพร่แอปอาจต้อง ค้นหาเวอร์ชันของแอปคุณเพื่อให้แอปแสดงเวอร์ชัน ผู้ใช้ บริการเผยแพร่อาจต้องตรวจสอบเวอร์ชันของแอปเพื่อ ระบุความเข้ากันได้และสร้างความสัมพันธ์การอัปเกรด/ดาวน์เกรด
ระบบ Android ใช้ข้อมูลเวอร์ชันของแอปเพื่อปกป้อง เมื่อเทียบกับการดาวน์เกรด ระบบไม่ใช้ข้อมูลเวอร์ชันของแอปเพื่อบังคับใช้ข้อจำกัด การอัปเกรดหรือความเข้ากันได้ของแอปพลิเคชันของบุคคลที่สาม แอปของคุณต้องบังคับใช้ และแจ้งให้ผู้ใช้ทราบเกี่ยวกับข้อจำกัด
ระบบ Android บังคับใช้ความเข้ากันได้กับเวอร์ชันของระบบตามที่แสดงไว้
ตามการตั้งค่า minSdk
ในไฟล์บิลด์ การตั้งค่านี้
อนุญาตให้แอประบุ API ระบบขั้นต่ำที่เข้ากันได้
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อกำหนดของ API
ดูระบุข้อกำหนดระดับ API
ข้อกำหนดด้านการกำหนดเวอร์ชันจะแตกต่างกันไปในแต่ละโปรเจ็กต์ อย่างไรก็ตาม นักพัฒนาซอฟต์แวร์จำนวนมาก การกำหนดเวอร์ชันเชิงความหมายเป็นพื้นฐานที่ดีสำหรับ การกำหนดเวอร์ชัน
ตั้งค่าข้อมูลเวอร์ชันแอป
หากต้องการระบุข้อมูลเวอร์ชันให้แอป ให้กำหนดค่าสำหรับเวอร์ชัน การตั้งค่าในไฟล์บิลด์ของ Gradle
ดึงดูด
android { namespace 'com.example.testapp' compileSdk 33 defaultConfig { applicationId "com.example.testapp" minSdk 24 targetSdk 33 versionCode 1 versionName "1.0" ... } ... } ...
Kotlin
android { namespace = "com.example.testapp" compileSdk = 33 defaultConfig { applicationId = "com.example.testapp" minSdk = 24 targetSdk = 33 versionCode = 1 versionName = "1.0" ... } ... } ...
การตั้งค่าเวอร์ชัน
กำหนดค่าสำหรับทั้งการตั้งค่าเวอร์ชันที่ใช้ได้: versionCode
และ
versionName
versionCode
- จำนวนเต็มบวกที่ใช้เป็นตัวเลขเวอร์ชันภายใน
ตัวเลขนี้จะช่วยระบุว่าเวอร์ชันหนึ่งเป็นเวอร์ชันล่าสุดหรือไม่
มากกว่าอีกเวอร์ชันหนึ่ง โดยตัวเลขที่สูงกว่าแสดงถึงเวอร์ชันล่าสุด นี่คือ
ไม่ใช่หมายเลขเวอร์ชันที่แสดงต่อผู้ใช้ หมายเลขดังกล่าวถูกตั้งค่าโดย
การตั้งค่า
versionName
ระบบ Android ใช้ ค่าversionCode
เพื่อป้องกันการดาวน์เกรดโดยการป้องกัน ผู้ใช้ติดตั้ง APK ที่มีversionCode
ต่ำกว่า เวอร์ชันที่ติดตั้งในอุปกรณ์ของตนอยู่ค่านี้เป็นจำนวนเต็มบวกเพื่อให้แอปอื่นๆ ประเมินแบบเป็นโปรแกรมได้ เช่น เพื่อตรวจสอบความสัมพันธ์ของการอัปเกรดหรือดาวน์เกรด คุณสามารถ กำหนดค่าเป็นจำนวนเต็มบวก อย่างไรก็ตาม อย่าลืม แอปที่เผยแพร่ต่อเนื่องแต่ละครั้งจะใช้มูลค่ามากกว่า
หมายเหตุ: คุณค่าที่คุ้มค่าที่สุดที่ Google Play อนุญาตสำหรับ
versionCode
คือ 2100000000คุณไม่สามารถอัปโหลด APK ไปยัง Play Store ด้วย
versionCode
ที่มี ที่เคยใช้อยู่แล้วสำหรับเวอร์ชันก่อนหน้าหมายเหตุ: ในบางสถานการณ์ คุณอาจต้องการ อัปโหลดเวอร์ชันของแอปที่มี
versionCode
ต่ำกว่าเวอร์ชันสูงสุด เวอร์ชันล่าสุด ตัวอย่างเช่น ถ้าคุณเผยแพร่ APK หลายรายการ อาจมี ช่วงversionCode
ที่กำหนดไว้ล่วงหน้าสำหรับ APK ที่เจาะจง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ การกำหนดค่าversionCode
สำหรับ APK หลายรายการ โปรดดู การกำหนดรหัสเวอร์ชันโดยปกติแล้ว คุณจะเปิดตัวแอปเวอร์ชันแรกที่มี
versionCode
ได้รับการตั้งค่าเป็น 1 แล้วเพิ่มค่าเดี่ยวๆ กับแต่ละผลงาน ไม่ว่าการเผยแพร่นั้นจะมี รายการหลักหรือ ผลงานเวอร์ชันย่อย ซึ่งหมายความว่าค่าversionCode
จะไม่ ต้องคล้ายคลึงกับเวอร์ชันการเผยแพร่ แสดงต่อผู้ใช้ แอปและบริการเผยแพร่ไม่ควรแสดงเวอร์ชันนี้ ให้แก่ผู้ใช้ versionName
สตริงที่ใช้เป็นหมายเลขเวอร์ชันที่แสดงแก่ ผู้ใช้ การตั้งค่านี้สามารถระบุเป็นสตริงดิบหรือเป็นการอ้างอิงไปยัง ของทรัพยากรสตริง
ค่านี้เป็นสตริงเพื่อให้คุณอธิบายเวอร์ชันของแอปเป็น <major>.<minor><point> สตริงหรือเป็นประเภทอื่น ตัวระบุเวอร์ชันสัมบูรณ์หรือสัมพัทธ์
versionName
เป็นค่าเดียว ที่แสดงต่อผู้ใช้
กำหนดค่าเวอร์ชัน
คุณกำหนดค่าเริ่มต้นสำหรับการตั้งค่าเหล่านี้ได้โดยรวมค่าไว้ใน
บล็อก defaultConfig {}
ที่ฝังไว้ภายใน android {}
ของไฟล์ build.gradle
หรือ build.gradle.kts
ของโมดูล คุณสามารถ
จากนั้นลบล้างค่าเริ่มต้นเหล่านี้สำหรับแอปเวอร์ชันต่างๆ โดยกำหนด
สำหรับบิลด์หรือรสชาติของผลิตภัณฑ์แต่ละประเภท ไฟล์ต่อไปนี้แสดง
การตั้งค่า versionCode
และ versionName
ใน
การบล็อก defaultConfig {}
และบล็อก productFlavors {}
จากนั้นค่าเหล่านี้จะรวมกันในไฟล์ Manifest ของแอปในระหว่างกระบวนการสร้าง
ดึงดูด
android { ... defaultConfig { ... versionCode 2 versionName "1.1" } productFlavors { demo { ... versionName "1.1-demo" } full { ... } } }
Kotlin
android { ... defaultConfig { ... versionCode = 2 versionName = "1.1" } productFlavors { create("demo") { ... versionName = "1.1-demo" } create("full") { ... } } }
ในบล็อก defaultConfig {}
ของตัวอย่างนี้
ค่า versionCode
บ่งชี้ว่า APK ปัจจุบันมีฟังก์ชัน
รุ่นที่สองของแอป และสตริง versionName
ระบุ
จะปรากฏให้ผู้ใช้เห็นเป็นเวอร์ชัน 1.1 ไฟล์นี้ยังระบุรสชาติของผลิตภัณฑ์อีก 2 แบบด้วย
"สาธิต" และ "เต็ม" ตั้งแต่ "การสาธิต" เวอร์ชันผลิตภัณฑ์กำหนด versionName
เป็น
"สาธิต 1.1", "การสาธิต" บิลด์จะใช้ versionName
นี้แทนค่าเริ่มต้น
"เต็มรูปแบบ" บล็อกรสชาติของผลิตภัณฑ์ไม่ได้กำหนด versionName
ดังนั้น
ใช้ค่าเริ่มต้น "1.1"
หมายเหตุ: หากแอปกำหนดเวอร์ชันของแอปโดยตรงใน
<manifest>
องค์ประกอบ ค่าเวอร์ชันในบิลด์ของ Gradle
จะลบล้างการตั้งค่าในไฟล์ Manifest นอกจากนี้ การกำหนดรายการเหล่านี้
ในไฟล์บิลด์ของ Gradle ช่วยให้คุณระบุค่าต่างๆ ได้สำหรับ
เวอร์ชันต่างๆ ของแอปกัน เพื่อความยืดหยุ่นที่มากขึ้นและเพื่อหลีกเลี่ยง
รายการที่เขียนทับได้เมื่อมีการรวมไฟล์ Manifest ให้นำ
จากเอลิเมนต์ <manifest>
และกำหนด
การตั้งค่าเวอร์ชันในไฟล์บิลด์ของ Gradle แทน
เฟรมเวิร์ก Android มี API เพื่อให้คุณค้นหาระบบได้
เพื่อดูข้อมูลเวอร์ชันเกี่ยวกับแอป หากต้องการรับข้อมูลเวอร์ชัน
ให้ใช้
PackageManager.getPackageInfo(java.lang.String, int)
วิธี
ระบุข้อกำหนดระดับ API
หากแอปต้องใช้เวอร์ชัน Android ขั้นต่ำที่เฉพาะเจาะจง
แพลตฟอร์มของเราคุณสามารถระบุข้อกำหนดเวอร์ชันเป็นการตั้งค่าระดับ API
ในไฟล์ build.gradle
หรือ build.gradle.kts
ของแอป ระหว่างการสร้าง
การตั้งค่าเหล่านี้จะผสานรวมเข้ากับไฟล์ Manifest ของแอป การระบุระดับ API
เพื่อให้แน่ใจว่าแอปของคุณจะติดตั้งได้ในอุปกรณ์ที่
ที่ใช้แพลตฟอร์ม Android เวอร์ชันที่เข้ากันได้
หมายเหตุ: หากคุณระบุข้อกำหนดระดับ API โดยตรงใน
ไฟล์ Manifest ของแอป การตั้งค่าที่เกี่ยวข้องในไฟล์บิลด์
ลบล้างการตั้งค่าในไฟล์ Manifest นอกจากนี้ การกำหนดรายการเหล่านี้
ในไฟล์บิลด์ของ Gradle ช่วยให้คุณระบุค่าต่างๆ ได้สำหรับ
เวอร์ชันต่างๆ ของแอปกัน เพื่อความยืดหยุ่นที่มากขึ้นและเพื่อหลีกเลี่ยง
รายการที่เขียนทับได้เมื่อมีการรวมไฟล์ Manifest ให้นำ
จากเอลิเมนต์ <uses-sdk>
และกำหนด API ของคุณ
การตั้งค่าระดับในไฟล์บิลด์ของ Gradle แทน
การตั้งค่าระดับ API มีอยู่ 2 แบบ ได้แก่
minSdk
— เวอร์ชันต่ำสุด ของแพลตฟอร์ม Android ที่แอปจะทำงาน ระบุ ตามตัวระบุระดับ API ของแพลตฟอร์มtargetSdk
— ระดับ API ที่ออกแบบมาเพื่อเรียกใช้แอป ในบางกรณี วิธีนี้ทำให้ แอปเพื่อใช้องค์ประกอบหรือลักษณะการทำงานของไฟล์ Manifest ที่กำหนดไว้ในเป้าหมาย ระดับ API ของคุณ แทนการถูกจำกัดให้ใช้เฉพาะระดับที่กำหนด สำหรับระดับ API ขั้นต่ำ
ในการระบุข้อกำหนดระดับ API เริ่มต้นใน build.gradle
หรือ
build.gradle.kts
ให้เพิ่มการตั้งค่าระดับ API อย่างน้อย 1 รายการใน
บล็อก defaultConfig{}
ที่ฝังอยู่ภายในบล็อก android {}
คุณสามารถ
ลบล้างค่าเริ่มต้นเหล่านี้สำหรับ
เวอร์ชันต่างๆ ของแอปได้โดยการเพิ่มการตั้งค่าให้กับประเภทบิลด์หรือรสชาติของผลิตภัณฑ์
ไฟล์ต่อไปนี้ระบุค่าเริ่มต้น
การตั้งค่า minSdk
และ targetSdk
ใน
defaultConfig {}
บล็อกและลบล้าง minSdk
สำหรับผลิตภัณฑ์ 1 รสชาติ:
ดึงดูด
android { ... defaultConfig { ... minSdk 21 targetSdk 33 } productFlavors { main { ... } afterNougat { ... minSdk 24 } } }
Kotlin
android { ... defaultConfig { ... minSdk = 21 targetSdk = 33 } productFlavors { create("main") { ... } create("afterNougat") { ... minSdk = 24 } } }
ขณะเตรียมติดตั้งแอป ระบบจะตรวจสอบค่าของ
การตั้งค่าเหล่านี้และเปรียบเทียบกับเวอร์ชันของระบบ หาก
ค่า minSdk
มากกว่าเวอร์ชันของระบบ
ระบบจะป้องกันการติดตั้งแอปดังกล่าว
หากคุณไม่ระบุการตั้งค่าเหล่านี้ ระบบจะถือว่าแอปของคุณ
ใช้ได้กับแพลตฟอร์มทุกเวอร์ชัน ค่านี้เทียบเท่ากับการตั้งค่า minSdk
เป็น
1
ดูข้อมูลเพิ่มเติมได้ที่ระดับ API คืออะไร สำหรับการตั้งค่าบิลด์ของ Gradle โปรดดูที่กำหนดค่าตัวแปรของบิลด์