Version Code: mi ez, számazonosító és frissítések

Szerző: IT Sectr Megjelenés: 2026-04-17 Olvasási idő: 8 perc

Version Code — egy pozitív egész szám az Android fejlesztésben, amely egyedileg azonosítja az alkalmazás minden új buildjét. A Google Play és az Android rendszer a Version Code segítségével határozza meg a frissítés szükségességét: ha az új build kódja nagyobb, mint a telepítetté, elindul a frissítési folyamat. A Android Developer Documentation szerint a Version Code nem jelenik meg a felhasználó számára, és kizárólag a verziók belső számozására szolgál.

Főbb pontok

  • Version Code — az Android alkalmazás buildjének numerikus azonosítója a Google Play számára
  • Növekmény — minden új buildnek nagyobb Version Code-dal kell rendelkeznie, mint az előző
  • Version Name — szöveges verzió a felhasználó számára, nem befolyásolja a frissítési mechanizmust
  • Beállítás a build.gradle fájlban történik a versionCode mezőn keresztül
  • Korlátozás — a Version Code maximális értéke 2100000000

Mi az a Version Code Androidban

Version Code — egy Integer típusú egész szám, amelyet az Android alkalmazás minden buildjéhez hozzárendelnek. A Version Name-től eltérően a Version Code nem jelenik meg a felhasználó számára, és kizárólag az operációs rendszer és a Google Play használja a verziók összehasonlítására a frissítések telepítésekor.

A Version Code formátuma

Version Code egy pozitív egész szám kell, hogy legyen 1 és 2100000000 közötti tartományban. Minden következő buildnek szigorúan nagyobb Version Code-dal kell rendelkeznie, mint az előző. Ha a fejlesztő kiadott egy buildet Version Code 5-tel, a következő közzététel használhat 6-ot, 7-et vagy bármilyen 5-nél nagyobb számot, de nem 4-et és nem ismét 5-öt.

Kialakulás története

A Google 2007-ben, az Android SDK megjelenésével vezette be a Version Code és Version Name közötti felosztást. Version Code a verziók automatikus összehasonlítására szolgáló gépi azonosítóként lett kialakítva, míg a Version Name — ember által olvasható címkeként. Ez a szétválasztás lehetővé teszi a fejlesztő számára, hogy tetszőlegesen nevezze el a verziót, miközben a numerikus kódon keresztül szigorú frissítési sorrendet tart fenn.

ParaméterVersion CodeVersion Name
AdattípusIntegerString
Megjelenítés a felhasználónakNemIgen
Verziók összehasonlításaSzámítógépes összehasonlításNem használatos
Formátum1, 2, 3, 10, 1001.0.0, 2.3.1-rc
Tartomány1 — 2100000000Korlátozás nélkül

Hogyan működik a verziókezelés Version Code segítségével

A Version Code összehasonlító mechanizmusa be van építve az Android operációs rendszerbe és a Google Play áruházba. Minden közzétételkor a Google Play ellenőrzi, hogy az új build Version Code-ja nagyobb-e, mint a telepített verzió kódja. Ha a feltétel nem teljesül, a közzététel hibával elutasításra kerül.

Frissítés-ellenőrzési folyamat

Amikor az eszköz kapcsolatba lép a Google Play-lel a frissítések ellenőrzése érdekében, a szerver összehasonlítja a telepített alkalmazás Version Code-ját az áruházban elérhető maximummal. Ha a szerveren lévő kód nagyobb — elindul a frissítés letöltése és telepítése. A felhasználó látja a fejlesztő által megadott Version Name-t, de a frissítésről szóló döntés a Version Code alapján történik.

A Version Code növelése

A fejlesztők különböző stratégiákat alkalmaznak a Version Code növelésére. A legegyszerűbb — minden buildnél 1-gyel történő növelés. CI/CD folyamatokhoz gyakran használnak timestamp-et vagy build számot: 2026070301 (év-hónap-nap-szám). Fontos, hogy a kód monoton növekedjen és ne ismétlődjön meg különböző build-ek és Google Play track-ek között.

  • Monoton növekmény — növelés 1-gyel minden commit-nál a release ágba
  • Timestamp formátum — 20260703 napi build-ekhez, 2026070301 több napi buildhez
  • SemVer számokban — 100010000 az 1.1.0 verzióhoz (major 1, minor 1, patch 0)
  • Build szám — a CI rendszerből származó BUILD_NUMBER használata (Jenkins, GitHub Actions)

Különbségek a Version Code és a Version Name között

Version Code és Version Name — két független mező a build.gradle-ben, amelyek különböző funkciókat látnak el. A Version Code a rendszer számára szolgáló belső azonosító, a Version Name a felhasználó számára készült marketing címke. Egymástól függetlenül változhatnak.

Version Name a felhasználó számára

Version Name — egy karaktersorozat, amely az alkalmazás beállításaiban, a Google Play-ben és a frissítési párbeszédablakokban jelenik meg. A fejlesztő bármilyen formátumot megadhat: 1.0.0, 2.3.1-beta, 3.0-rc1. A szöveges verziók összehasonlítására a Version Name nem használatos — a Google Play mindig a Version Code-ra támaszkodik.

Elérési forgatókönyvek

Lehetséges az a helyzet, amikor a Version Code nő, de a Version Name változatlan marad. Például, ha a fejlesztő egy kritikus hibát javít egy hotfix buildben anélkül, hogy megváltoztatná a funkcionalitást. A Version Name 2.0.0 marad, a Version Code pedig 5-ről 6-ra változik. A Google Play helyesen kezeli az ilyen frissítést.

groovy
// Példa: version name nem változik, code nő
android {
    defaultConfig {
        versionCode 6  // 5 volt — hotfix új funkciók nélkül
        versionName "2.0.0"  // Nem változott
    }
}

// Verziók ellenőrzése runtime-ban
val code = BuildConfig.VERSION_CODE
val name = BuildConfig.VERSION_NAME
println("Kód: $code, Név: $name")

A Version Code beállítása a build.gradle-ben

A Version Code beállítása az alkalmazás modul build.gradle fájljában történik. A versionCode mező egész számot fogad el és a defaultConfig blokkban található. Különböző flavour build-ekhez saját értékek állíthatók be a versionCode mezőn keresztül a termékkonfigurációban.

Alap konfiguráció

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 lehetővé teszik különböző Version Code használatát különböző konfigurációkhoz: demo verzió, külön verzió tabletekhez. Ha a projektben flavors-t használnak, a végső Version Code az alapszámból és a flavour-specifikus növekményből áll. A Google Play minden kombinációt függetlenül követ nyomon.

A növekmény automatizálása CI-n keresztül

A CI/CD folyamatokban (GitHub Actions, GitLab CI, Jenkins) a Version Code gyakran automatikusan generálódik a build szám vagy dátum alapján. Ez kiküszöböli az emberi hibákat a kézi frissítésnél. A szkript beolvassa az aktuális Version Code-ot a build.gradle-ből, megnöveli, és visszaírja a build megkezdése előtt.

kotlin
// A Version Code automatikus növelése
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
    }
}

A Version Code szabályai a Google Play-ben történő közzétételhez

Google Play szigorú szabályokkal rendelkezik a Version Code-ra vonatkozóan az alkalmazások közzététele és frissítése során. E szabályok megsértése a build elutasításához vagy a frissítés kiadásának képtelenségéhez vezet. A fejlesztőnek meg kell értenie a korlátozásokat és a kódkezelési stratégiákat az életciklus minden szakaszaiban.

A monoton növekedés szabálya

Google Play nem teszi lehetővé olyan APK vagy AAB feltöltését, amelynek Version Code-ja kisebb vagy egyenlő, mint a jelenleg közzétett. Ez a szabály minden track-re (production, beta, alpha) függetlenül érvényes. Ha a production track-be feltöltöttek egy buildet Version Code 10-zel, és az alpha track-ben 5-ös kód van, az alpha track frissíthető 6-ra, 7-re, 8-ra vagy 9-re, de a production 10-en marad.

Migráció a track-ek között

A build alpha-ból bétába, majd production-be történő promoválásakor a Version Code-nak minden szakaszban növekednie kell. Ha az alpha verzió 10-es kóddal rendelkezik, a béta használhat 11-et, a production pedig 12-t. Nem lehet production-be küldeni egy buildet 10-es kóddal, ha az alpha már használja a 10-et, még akkor sem, ha a production még nem látta.

  • Monotonous increment — minden build egy track-ben nagyobb Version Code-dal rendelkezik, mint az előző ugyanabban a track-ben
  • Cross-track awareness — a track-ek közötti promováláskor a Version Code szekvenciálisan nő
  • Internal testing — a belső tesztelési track ugyanazokat a monotonitási szabályokat használja
  • Multiple APKs — a régi közzétételi formátum egyedi Version Code-ot követelt meg minden APK számára

Hibák a Version Code megadásakor

A leggyakoribb hiba — a Version Code egyezése különböző, egy track-be feltöltött build-ekben. A Google Play az APK_VERSION_CODE_ALREADY_EXISTS hibát adja vissza. Másik hiba — a maximális 2100000000 érték túllépése, ami fordítási hibához vezet. Az ütközések elkerülése érdekében használjon automatikus kódgenerálást a CI rendszerben, a build számhoz vagy dátumhoz kötve.

A fejlesztők gyakran elkövetik azt a hibát is, hogy nem növelik a Version Code-ot egy alternatív track-hez készülő hotfix buildnél. Ha a production kódja 15, és az alpha track 14-en maradt, az alpha production-be történő promoválásakor a Google Play elutasítja a buildet, mert a kódja kisebb, mint a jelenlegi production. Kövesse nyomon a kód monotonitását az összes track-ben egyszerre — ehhez használjon egyetlen version.properties fájlt, amelyből az összes track olvassa az aktuális értéket.

Gyakran Ismételt Kérdések

Kiadható-e frissítés kisebb Version Code-dal, mint a jelenlegi?

Nem, a Google Play nem teszi lehetővé olyan build feltöltését, amelynek Version Code-ja kisebb vagy egyenlő, mint a jelenleg közzétett ugyanabban a track-ben. A rendszer feltöltéskor ellenőrzi a kódot, és hibát ad vissza, ha a monoton növekedés szabálya sérül. Az alfa és béta track-ekre ugyanez az elv vonatkozik függetlenül.

Milyen Version Code-ot adjak meg az alkalmazás első közzétételéhez?

Az első közzétételhez megadhat Version Code 1-et. A Google Play nem állít be minimális küszöböt a pozitív egész számon kívül. Javasolt 1-gyel kezdeni és minden következő buildnél 1-gyel növelni. Ha timestamp formátumot használ, az első build lehet 20260701.

Hogyan kapcsolódik a Version Code a Version Name-hez a Google Play-ben?

Version Code — belső gépi azonosító, amelyet a rendszer használ az összehasonlításhoz. Version Name — felhasználói címke, amely a Google Play-ben és az eszközön jelenik meg. A felhasználó a Version Name-t látja (például 2.0.0), a Google Play pedig a Version Code-ot használja a frissítés szükségességének meghatározásához.

Mi történik, ha túllépem a Version Code maximális értékét?

A Version Code maximális értéke 2100000000 (Integer.MAX_VALUE). Túllépéskor a fordító hibát ad vissza, mert a mező típusa int. Nagyszámú build-del rendelkező projektek esetén (napi kiadásokkal CI/CD) javasolt a timestamp formátum használata vagy a számláló visszaállítása egy major verzió kezdetével.

Használható-e a Version Code A/B tesztelésre?

Version Code közvetlenül nem használatos A/B tesztelésre, de közvetve befolyásolja azt. A Google Play lehetővé teszi a szakaszos bevezetés (staged rollout) beállítását a felhasználók százaléka alapján egy adott build esetében. A Version Code azonosítja a buildet, az A/B teszteket pedig Firebase Remote Config vagy hasonló szolgáltatások segítségével konfigurálják.

Összefoglaló

  • Version Code — egész szám, amely egyedileg azonosítja az Android alkalmazás minden buildjét
  • Google Play a Version Code segítségével határozza meg az alkalmazás frissítésének szükségességét
  • Növekmény szabálya — minden új buildnek szigorúan nagyobb kóddal kell rendelkeznie, mint az előző ugyanabban a track-ben
  • Értéktartomány — 1-től 2100000000-ig (Integer.MAX_VALUE)
  • Version Name — felhasználói szöveges címke, nem befolyásolja a frissítési mechanizmust
  • Automatizálás — a CI/CD rendszerek képesek Version Code-ot generálni a build szám alapján
  • Javaslat — válasszon növekmény stratégiát a közzététel előtt és tartsa be azt a teljes életciklus során

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is