Version Code: ce este, identificatorul numeric și actualizări

Autor: IT Sectr Publicat: 2026-04-17 Timp de citire: 8 min

Version Code — este un număr întreg pozitiv în dezvoltarea Android care identifică în mod unic fiecare nouă compilare a aplicației. Google Play și sistemul Android utilizează Version Code pentru a determina necesitatea actualizării: dacă codul noii compilări este mai mare decât cel instalat, se pornește procesul de actualizare. Potrivit Android Developer Documentation, Version Code nu este afișat utilizatorului și servește exclusiv pentru numerotarea internă a versiunilor.

Principalele

  • Version Code — identificatorul numeric al compilării aplicației Android pentru Google Play
  • Increment — fiecare compilare nouă trebuie să aibă un Version Code mai mare decât precedenta
  • Version Name — versiunea text pentru utilizator, nu influențează mecanismul de actualizare
  • Configurarea se realizează în build.gradle prin câmpul versionCode
  • Limitare — valoarea maximă a Version Code este 2100000000

Ce este Version Code în Android

Version Code — este un număr întreg de tip Integer care este atribuit fiecărei compilări a aplicației Android. Spre deosebire de Version Name, Version Code nu este afișat utilizatorului și este utilizat exclusiv de sistemul de operare și Google Play pentru compararea versiunilor la instalarea actualizărilor.

Formatul Version Code

Version Code trebuie să fie un număr întreg pozitiv în intervalul de la 1 la 2100000000. Fiecare compilare ulterioară trebuie să aibă un Version Code strict mai mare decât precedenta. Dacă dezvoltatorul a lansat o compilare cu Version Code 5, următoarea publicație poate utiliza 6, 7 sau orice număr mai mare de 5, dar nu 4 și nici 5 din nou.

Istoricul apariției

Google a introdus împărțirea în Version Code și Version Name odată cu lansarea Android SDK în 2007. Version Code a fost conceput ca un identificator mașină pentru compararea automată a versiunilor, în timp ce Version Name — ca o etichetă lizibilă pentru om. Această separare permite dezvoltatorului să denumească versiunea după cum dorește, păstrând în același timp o ordine strictă a actualizărilor prin codul numeric.

ParametruVersion CodeVersion Name
Tipul de dateIntegerString
Afișarea utilizatoruluiNuDa
Compararea versiunilorComparare numericăNu se utilizează
Format1, 2, 3, 10, 1001.0.0, 2.3.1-rc
Interval1 — 2100000000Fără restricții

Cum funcționează versionarea prin Version Code

Mecanismul de comparare Version Code este încorporat în sistemul de operare Android și în magazinul Google Play. La fiecare publicare, Google Play verifică dacă Version Code al noii compilări este mai mare decât codul versiunii instalate. Dacă condiția nu este îndeplinită, publicarea este respinsă cu o eroare.

Procesul de verificare a actualizării

Când dispozitivul contactează Google Play pentru a verifica actualizări, serverul compară Version Code al aplicației instalate cu cel maxim disponibil în magazin. Dacă codul de pe server este mai mare — se pornește descărcarea și instalarea actualizării. Utilizatorul vede Version Name specificat de dezvoltator, dar decizia privind actualizarea se ia pe baza Version Code.

Incrementarea Version Code

Dezvoltatorii aplică diferite strategii de incrementare a Version Code. Cea mai simplă este creșterea cu 1 la fiecare compilare. Pentru conductele CI/CD se utilizează adesea timestamp sau numărul de compilare: 2026070301 (an-lună-zi-număr). Este important ca codul să crească monoton și să nu se repete între diferite compilări și track-uri Google Play.

  • Increment monoton — creșterea cu 1 la fiecare commit în ramura release
  • Format timestamp — 20260703 pentru compilări zilnice, 2026070301 pentru mai multe într-o zi
  • SemVer în numere — 100010000 pentru versiunea 1.1.0 (major 1, minor 1, patch 0)
  • Numărul de build — utilizarea BUILD_NUMBER din sistemul CI (Jenkins, GitHub Actions)

Diferențele dintre Version Code și Version Name

Version Code și Version Name — două câmpuri independente în build.gradle care îndeplinesc funcții diferite. Version Code este un identificator intern pentru sistem, Version Name este o etichetă de marketing pentru utilizator. Ele se pot modifica independent unul de celălalt.

Version Name pentru utilizator

Version Name — este un șir care este afișat în setările aplicației, în Google Play și în dialogurile de actualizare. Dezvoltatorul poate specifica orice format: 1.0.0, 2.3.1-beta, 3.0-rc1. Pentru compararea versiunilor text, Version Name nu este utilizat — Google Play se bazează întotdeauna pe Version Code.

Scenarii de divergență

Este posibilă situația când Version Code crește, iar Version Name rămâne neschimbat. De exemplu, dacă dezvoltatorul repară o eroare critică într-o compilare hotfix fără a modifica funcționalitatea. Version Name rămâne 2.0.0, iar Version Code se schimbă de la 5 la 6. Google Play va gestiona corect o astfel de actualizare.

groovy
// Exemplu: version name nu se schimbă, code crește
android {
    defaultConfig {
        versionCode 6  // A fost 5 — hotfix fără funcții noi
        versionName "2.0.0"  // Nu s-a schimbat
    }
}

// Verificarea versiunilor în runtime
val code = BuildConfig.VERSION_CODE
val name = BuildConfig.VERSION_NAME
println("Cod: $code, Nume: $name")

Configurarea Version Code în build.gradle

Configurarea Version Code se realizează în fișierul build.gradle al modulului aplicației. Câmpul versionCode primește un număr întreg și se află în blocul defaultConfig. Pentru diferite compilări flavour se pot stabili valori proprii prin câmpul versionCode în configurarea produsului.

Configurarea de bază

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 permit utilizarea diferitelor Version Code pentru configurații diferite: versiunea demo, versiune separată pentru tablete. Dacă în proiect se utilizează flavors, Version Code final se compune din numărul de bază și incrementul specific flavour-ului. Google Play urmărește fiecare combinație în mod independent.

Automatizarea incrementării prin CI

În conductele CI/CD (GitHub Actions, GitLab CI, Jenkins) Version Code este adesea generat automat pe baza numărului de compilare sau a datei. Aceasta elimină erorile umane la actualizarea manuală. Scriptul citește Version Code curent din build.gradle, îl incrementează și îl scrie înapoi înainte de începerea compilării.

kotlin
// Incrementarea automată a 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
    }
}

Regulile Version Code pentru publicarea în Google Play

Google Play are reguli stricte pentru Version Code la publicarea și actualizarea aplicațiilor. Încălcarea acestor reguli duce la respingerea compilării sau imposibilitatea de a lansa o actualizare. Dezvoltatorul trebuie să înțeleagă limitările și strategiile de gestionare a codului în toate etapele ciclului de viață.

Regula creșterii monotone

Google Play nu permite încărcarea unui APK sau AAB al cărui Version Code este mai mic sau egal cu cel publicat curent. Această regulă funcționează pentru fiecare track (production, beta, alpha) în mod independent. Dacă în production a fost încărcată o compilare cu Version Code 10, iar în alpha — cu codul 5, track-ul alpha poate fi actualizat la 6, 7, 8 sau 9, dar production rămâne la 10.

Migrarea între track-uri

La promovarea compilării din alpha în beta, apoi în production, Version Code trebuie să crească la fiecare etapă. Dacă versiunea alpha are codul 10, beta poate utiliza 11, iar production — 12. Nu se poate lansa în production o compilare cu codul 10 dacă alpha utilizează deja 10, chiar dacă production nu l-a văzut încă.

  • Monotonous increment — fiecare compilare într-un track are Version Code mai mare decât precedenta din același track
  • Cross-track awareness — la promovarea între track-uri, Version Code crește secvențial
  • Internal testing — track-ul pentru testare internă utilizează aceleași reguli de monotonie
  • Multiple APKs — vechiul format de publicare necesita un Version Code unic pentru fiecare APK

Erori la specificarea Version Code

Cea mai frecventă eroare — coincidența Version Code în diferite compilări încărcate într-un singur track. Google Play returnează eroarea APK_VERSION_CODE_ALREADY_EXISTS. O altă eroare — depășirea valorii maxime 2100000000, ceea ce duce la o eroare de compilare. Pentru a evita conflictele, utilizați generarea automată a codului în sistemul CI cu legătură la numărul de compilare sau data compilării.

Dezvoltatorii fac adesea și eroarea de a nu crește Version Code la compilarea hotfix pentru un track alternativ. Dacă production are codul 15, iar track-ul alpha a rămas la 14, la promovarea alpha în production Google Play va respinge compilarea deoarece codul său este mai mic decât production curent. Urmăriți monotonitatea codului în toate track-urile simultan — pentru aceasta este convenabil să utilizați un singur fișier version.properties din care toate track-urile citesc valoarea curentă.

Întrebări frecvente

Se poate lansa o actualizare cu Version Code mai mic decât cel curent?

Nu, Google Play nu permite încărcarea unei compilări cu Version Code mai mic sau egal cu cel publicat curent în același track. Sistemul verifică codul la încărcare și returnează o eroare dacă regula creșterii monotone a fost încălcată. Pentru track-urile alfa și beta se aplică același principiu în mod independent.

Ce Version Code să specific pentru prima publicare a aplicației?

Pentru prima publicare puteți specifica Version Code 1. Google Play nu stabilește un prag minim, în afară de un număr întreg pozitiv. Se recomandă să începeți cu 1 și să creșteți cu 1 la fiecare compilare ulterioară. Dacă utilizați formatul timestamp, prima compilare poate fi 20260701.

Cum este legat Version Code de Version Name în Google Play?

Version Code — este un identificator mașină intern utilizat de sistem pentru comparare. Version Name — este o etichetă utilizator afișată în Google Play și pe dispozitiv. Utilizatorul vede Version Name (de exemplu, 2.0.0), iar Google Play utilizează Version Code pentru a determina necesitatea actualizării.

Ce se întâmplă la depășirea valorii maxime a Version Code?

Valoarea maximă a Version Code — 2100000000 (Integer.MAX_VALUE). La depășire, compilatorul va returna o eroare, deoarece câmpul este de tip int. Pentru proiecte cu un număr mare de compilări (CI/CD cu lansări zilnice) se recomandă utilizarea formatului timestamp sau resetarea contorului odată cu începutul versiunii major.

Poate fi utilizat Version Code pentru testarea A/B?

Version Code nu este utilizat direct pentru testarea A/B, dar influențează indirect aceasta. Google Play permite configurarea lansării etapizate (staged rollout) în funcție de procentul utilizatorilor pentru o compilare specifică. Version Code identifică compilarea, iar testele A/B se configurează prin Firebase Remote Config sau servicii similare.

Concluzii

  • Version Code — număr întreg care identifică unic fiecare compilare a aplicației Android
  • Google Play utilizează Version Code pentru a determina necesitatea actualizării aplicației
  • Regula de increment — fiecare compilare nouă trebuie să aibă un cod strict mai mare decât precedenta în același track
  • Intervalul valorilor — de la 1 la 2100000000 (Integer.MAX_VALUE)
  • Version Name — etichetă text utilizator, nu influențează mecanismul de actualizare
  • Automatizare — sistemele CI/CD pot genera Version Code din numărul de compilare sau timestamp
  • Recomandare — alegeți o strategie de increment înainte de publicare și respectați-o pe tot ciclul de viață

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și