Version Code — ay isang positibong integer sa Android development na natatanging tumutukoy sa bawat bagong build ng aplikasyon. Ginagamit ng Google Play at ng Android system ang Version Code upang matukoy ang pangangailangan para sa update: kung ang code ng bagong build ay mas malaki kaysa sa naka-install, magsisimula ang proseso ng pag-update. Ayon sa Android Developer Documentation, ang Version Code ay hindi ipinapakita sa user at nagsisilbi lamang para sa panloob na pag-numero ng bersyon.
Mga Pangunahing Punto
Version Code — ay isang integer ng uri Integer na itinalaga sa bawat build ng Android application. Hindi tulad ng Version Name, ang Version Code ay hindi ipinapakita sa user at ginagamit lamang ng operating system at Google Play upang ihambing ang mga bersyon kapag nag-i-install ng mga update.
Version Code ay dapat na isang positibong integer sa hanay mula 1 hanggang 2100000000. Bawat kasunod na build ay dapat may Version Code na mahigpit na mas malaki kaysa sa nauna. Kung ang developer ay naglabas ng build na may Version Code 5, ang susunod na publikasyon ay maaaring gumamit ng 6, 7, o anumang bilang na mas malaki sa 5, ngunit hindi 4 at hindi 5 muli.
Ipinakilala ng Google ang paghahati sa Version Code at Version Name kasabay ng paglabas ng Android SDK noong 2007. Version Code ay idinisenyo bilang machine identifier para sa awtomatikong paghahambing ng bersyon, habang ang Version Name — bilang isang label na nababasa ng tao. Ang paghihiwalay na ito ay nagpapahintulot sa developer na pangalanan ang bersyon ayon sa gusto, habang pinapanatili ang mahigpit na pagkakasunud-sunod ng pag-update sa pamamagitan ng numeric code.
| Parameter | Version Code | Version Name |
|---|---|---|
| Uri ng data | Integer | String |
| Pagpapakita sa user | Hindi | Oo |
| Paghahambing ng bersyon | Paghahambing na numeric | Hindi ginagamit |
| Format | 1, 2, 3, 10, 100 | 1.0.0, 2.3.1-rc |
| Saklaw | 1 — 2100000000 | Walang limitasyon |
Ang mekanismo ng paghahambing ng Version Code ay naka-embed sa Android operating system at sa Google Play store. Sa bawat publikasyon, sinusuri ng Google Play kung ang Version Code ng bagong build ay mas malaki kaysa sa code ng naka-install na bersyon. Kung hindi natugunan ang kundisyon, ang publikasyon ay tatanggihan na may error.
Kapag ang device ay kumonekta sa Google Play upang suriin ang mga update, inihahambing ng server ang Version Code ng naka-install na application sa maximum na available sa store. Kung ang code sa server ay mas malaki — magsisimula ang pag-download at pag-install ng update. Nakikita ng user ang Version Name na tinukoy ng developer, ngunit ang desisyon tungkol sa pag-update ay ginagawa batay sa Version Code.
Ang mga developer ay nag-aaplay ng iba’t ibang estratehiya para sa pagtaas ng Version Code. Ang pinakasimple ay pagtaas ng 1 sa bawat build. Para sa CI/CD pipelines, madalas ginagamit ang timestamp o build number: 2026070301 (taon-buwan-araw-bilang). Mahalaga na ang code ay monotonic na tumaas at hindi maulit sa pagitan ng iba’t ibang build at Google Play track.
Version Code at Version Name — dalawang independiyenteng field sa build.gradle na gumaganap ng iba’t ibang function. Ang Version Code ay isang panloob na identifier para sa system, ang Version Name ay isang marketing label para sa user. Maaari silang magbago nang independiyente sa isa’t isa.
Version Name — ay isang string na ipinapakita sa mga setting ng application, sa Google Play, at sa mga dialog ng pag-update. Maaaring tukuyin ng developer ang anumang format: 1.0.0, 2.3.1-beta, 3.0-rc1. Para sa paghahambing ng mga text version, hindi ginagamit ang Version Name — ang Google Play ay laging umaasa sa Version Code.
Posible ang sitwasyon kung saan Version Code ay tumaas, ngunit ang Version Name ay nananatiling hindi nagbabago. Halimbawa, kung ang developer ay nag-aayos ng kritikal na bug sa isang hotfix build nang hindi binabago ang functionality. Ang Version Name ay nananatiling 2.0.0, at ang Version Code ay nagbabago mula 5 hanggang 6. Tamang hahawakan ng Google Play ang naturang update.
// Halimbawa: hindi nagbabago ang version name, tumataas ang code
android {
defaultConfig {
versionCode 6 // Ay 5 — hotfix na walang bagong feature
versionName "2.0.0" // Hindi nagbago
}
}
// Pagsusuri ng bersyon sa runtime
val code = BuildConfig.VERSION_CODE
val name = BuildConfig.VERSION_NAME
println("Code: $code, Pangalan: $name")
Konfigurasyon ng Version Code ay ginagawa sa file na build.gradle ng module ng application. Ang field na versionCode ay tumatanggap ng integer at nasa block na defaultConfig. Para sa iba’t ibang flavour build, maaaring itakda ang sariling mga halaga sa pamamagitan ng field na versionCode sa configuration ng produkto.
// 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 ay nagpapahintulot sa paggamit ng iba’t ibang Version Code para sa iba’t ibang configuration: demo version, hiwalay na bersyon para sa mga tablet. Kung ang flavors ay ginagamit sa proyekto, ang huling Version Code ay binubuo ng base number at flavour-specific na pagtaas. Sinusubaybayan ng Google Play ang bawat kumbinasyon nang independiyente.
Sa CI/CD pipelines (GitHub Actions, GitLab CI, Jenkins) ang Version Code ay madalas na awtomatikong nabubuo batay sa build number o petsa. Tinatanggal nito ang mga pagkakamali ng tao sa manu-manong pag-update. Binabasa ng script ang kasalukuyang Version Code mula sa build.gradle, tinataasan ito, at isinusulat ito pabalit bago magsimula ang build.
// Awtomatikong pagtaas ng 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
}
}
Google Play ay may mahigpit na patakaran para sa Version Code sa pag-publish at pag-update ng mga application. Ang paglabag sa mga patakarang ito ay humahantong sa pagtanggi ng build o kawalan ng kakayahang maglabas ng update. Dapat maunawaan ng developer ang mga limitasyon at estratehiya ng pamamahala ng code sa lahat ng yugto ng lifecycle.
Google Play ay hindi pinapayagan ang pag-upload ng APK o AAB na ang Version Code ay mas maliit o katumbas ng kasalukuyang nai-publish. Ang patakarang ito ay gumagana para sa bawat track (production, beta, alpha) nang independiyente. Kung sa production ay na-upload ang build na may Version Code 10, at sa alpha — na may code 5, ang alpha track ay maaaring i-update sa 6, 7, 8 o 9, ngunit ang production ay nananatili sa 10.
Sa pag-promote ng build mula alpha patungong beta, pagkatapos ay sa production, Version Code ay dapat tumaas sa bawat yugto. Kung ang alpha version ay may code 10, ang beta ay maaaring gumamit ng 11, at ang production — 12. Hindi maaaring i-rollout sa production ang build na may code 10 kung ang alpha ay gumagamit na ng 10, kahit na hindi pa ito nakikita ng production.
Ang pinakakaraniwang error — pagtutugma ng Version Code sa iba’t ibang build na na-upload sa isang track. Ibinabalik ng Google Play ang error na APK_VERSION_CODE_ALREADY_EXISTS. Isa pang error — paglampas sa maximum na halaga na 2100000000, na nagdudulot ng error sa compilation. Upang maiwasan ang mga salungatan, gamitin ang awtomatikong pagbuo ng code sa CI system na naka-link sa build number o petsa ng build.
Ang mga developer ay madalas ding nagkakamali sa hindi pagtaas ng Version Code sa hotfix build para sa alternatibong track. Kung ang production ay may code 15, at ang alpha track ay nanatili sa 14, sa pag-promote ng alpha sa production, tatanggihan ng Google Play ang build dahil ang code nito ay mas maliit kaysa sa kasalukuyang production. Subaybayan ang monotonisidad ng code sa lahat ng track nang sabay-sabay — para dito, gumamit ng isang file na version.properties kung saan binabasa ng lahat ng track ang kasalukuyang halaga.
Mga Madalas Itanong
Hindi, hindi pinapayagan ng Google Play ang pag-upload ng build na may Version Code na mas maliit o katumbas ng kasalukuyang nai-publish sa parehong track. Sinusuri ng system ang code sa pag-upload at nagbabalik ng error kung ang patakaran ng monotonic na pagtaas ay nilabag. Para sa alpha at beta track, ang parehong prinsipyo ay nalalapat nang independiyente.
Para sa unang publikasyon, maaari mong tukuyin ang Version Code 1. Hindi nagtatakda ang Google Play ng minimum na threshold maliban sa positibong integer. Inirerekomenda na magsimula sa 1 at dagdagan ng 1 sa bawat kasunod na build. Kung gumagamit ka ng timestamp format, ang unang build ay maaaring 20260701.
Version Code — ay isang panloob na machine identifier na ginagamit ng system para sa paghahambing. Version Name — ay isang user label na ipinapakita sa Google Play at sa device. Nakikita ng user ang Version Name (halimbawa, 2.0.0), at ginagamit ng Google Play ang Version Code upang matukoy ang pangangailangan para sa update.
Ang maximum na halaga ng Version Code ay 2100000000 (Integer.MAX_VALUE). Kapag lumampas, ang compiler ay magbabalik ng error dahil ang field ay may uri na int. Para sa mga proyektong may malaking bilang ng build (CI/CD na may araw-araw na release) inirerekomenda ang paggamit ng timestamp format o pag-reset ng counter sa simula ng major version.
Version Code ay hindi direktang ginagamit para sa A/B testing, ngunit hindi tuwirang nakakaapekto rito. Pinapayagan ng Google Play ang pag-configure ng staged rollout batay sa porsyento ng mga user para sa isang partikular na build. Tinutukoy ng Version Code ang build, at ang A/B tests ay na-configure sa pamamagitan ng Firebase Remote Config o mga katulad na serbisyo.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din