Version Code: nədir, rəqəmsal identifikator və yeniləmələr

Müəllif: IT Sectr Dərc olunub: 2026-04-17 Oxuma vaxtı: 8 dəq

Version Code — bu Android inkişafında müsbət tam ədəddir və tətbiqin hər yeni qurulmasını unikal şəkildə identifikasiya edir. Google Play və Android sistemi yeniləmə ehtiyacını müyyənləşdirmək üçün Version Code-dan istifadə edir: əgər yeni qurulmanın kodu qurulmuş versiyadan böyükdürsə, yeniləmə prosesi başladılır. Android Developer Documentation-a görə, Version Code istifadəçiyə göstərilmir və yalnız daxili versiya nömrələməsi üçün xidmət edir.

Başlıca

  • Version Code — Google Play üçün Android tətbiq qurulmasının rəqəmsal identifikatoru
  • Artım — hər yeni qurulma əvvəlkindən böyük Version Code-a malik olmalıdır
  • Version Name — istifadəçi üçün mətn versiyası, yeniləmə mexanizminə təsir etmir
  • Konfiqurasiya build.gradle faylında versionCode sahəsi vasitəsilə aparılır
  • Məhdudiyyət — Version Code-un maksimum dəyəri 2100000000 təşkil edir

Android-də Version Code nədir

Version Code — bu Integer tipli tam ədəddir və Android tətbiqinin hər qurulmasına təyin edilir. Version Name-dən fərqli olaraq, Version Code istifadəçiyə göstərilmir və yalnız əməliyyat sistemi və Google Play tərəfindən yeniləmələrin quraşdırılması zamanı versiyaları müqayisə etmək üçün istifadə olunur.

Version Code formatı

Version Code 1-dən 2100000000-dək diapazonda müsbət tam ədəd olmalıdır. Hər sonrakı qurulma əvvəlkindən ciddi şəkildə böyük Version Code-a malik olmalıdır. Proqramçı Version Code 5 olan qurulma buraxmışsa, növbəti nəşr 6, 7 və ya 5-dən böyük istənilən ədədi istifadə edə bilər, lakin 4 və ya yenə 5 deyil.

Yaranma tarixi

Google, 2007-ci ildə Android SDK-nın buraxılması ilə Version Code və Version Name bölgüsünü tətbiq etdi. Version Code versiyaların avtomatik müqayisəsi üçün maşın identifikatoru kimi, Version Name isə insan üçün oxuna bilən etiket kimi hazırlanmışdır. Bu bölgü proqramçıya versiyanı istənildiyi kimi adlandırmağa imkan verir, eyni zamanda rəqəmsal kod vasitəsilə ciddi yeniləmə ardıcıllığını qoruyur.

ParametrVersion CodeVersion Name
Məlumat tipiIntegerString
İstifadəçiyə göstərilməXeyrBəli
Versiyaların müqayisəsiRəqəmsal müqayisəİstifadə olunmur
Format1, 2, 3, 10, 1001.0.0, 2.3.1-rc
Diapazon1 — 2100000000Məhdudiyyətsiz

Version Code vasitəsilə versiyalama necə işləyir

Müqayisə mexanizmi Version Code Android əməliyyat sisteminə və Google Play mağazasına quraşdırılmışdır. Hər nəşrdə Google Play yeni qurulmanın Version Code-unun quraşdırılmış versiyanın kodundan böyük olduğunu yoxlayır. Şərt yerinə yetirilməzsə, nəşr xəta ilə rədd edilir.

Yeniləmə yoxlama prosesi

Cihaz yeniləmələri yoxlamaq üçün Google Play-ə müraciət etdikdə, server quraşdırılmış tətbiqin Version Code-unu mağazada məvcud olan maksimum ilə müqayisə edir. Serverdəki kod böyükdürsə — yeniləmənin endirilməsi və quraşdırılması başladılır. İstifadəçi proqramçı tərəfindən göstərilən Version Name-i görür, lakin yeniləmə qərarı Version Code əsasında qəbul edilir.

Version Code artımı

Proqramçılar Version Code artımı üçün müxtəlif strategiyalar tətbiq edirlər. Ən sadəsi — hər qurulmada 1 vahid artırma. CI/CD boru kəmərləri üçün tez-tez timestamp və ya qurulma nömrəsi istifadə olunur: 2026070301 (il-ay-gün-nömrə). Kodun monoton şəkildə artması və müxtəlif qurulmalar və Google Play trekləri arasında təkrarlanmaması vacibdir.

  • Monoton artım — release filialına hər commit-də 1 vahid artırma
  • Timestamp formatı — günlük qurulmalar üçün 20260703, gündə bir neçəsi üçün 2026070301
  • Rəqəmlərdə SemVer — 1.1.0 versiyası üçün 100010000 (major 1, minor 1, patch 0)
  • Qurulma nömrəsi — CI sistemindən (Jenkins, GitHub Actions) BUILD_NUMBER istifadəsi

Version Code ilə Version Name arasındakı fərqlər

Version CodeVersion Name — build.gradle faylında müxtəlif funksiyaları yerinə yetirən iki müstəqil sahədir. Version Code sistem üçün daxili identifikator, Version Name istifadəçi üçün marketinq etiketidir. Onlar bir-birindən asılı olmayaraq dəyişə bilərlər.

İstifadəçi üçün Version Name

Version Name — bu tətbiq parametrlərində, Google Play-də və yeniləmə dialoqlarında göstərilən sətirdir. Proqramçı istənilən formatı təyin edə bilər: 1.0.0, 2.3.1-beta, 3.0-rc1. Mətn versiyalarını müqayisə etmək üçün Version Name istifadə olunmur — Google Play həmişə Version Code-a əsaslanır.

Uyğunsuzluq ssenariləri

Version Code-un artdığı, lakin Version Name-in dəyişməz qaldığı bir vəziyyət mümkündür. Məsələn, proqramçı funksionallığı dəyişmədən hotfix qurulmasında kritik bir səhvi düzəldirsə. Version Name 2.0.0 olaraq qalır, Version Code isə 5-dən 6-ya dəyişir. Google Play belə bir yeniləməni düzgün emal edir.

groovy
// Nümunə: version name dəyişmir, code artır
android {
    defaultConfig {
        versionCode 6  // 5 idi — yeni funksiyasız hotfix
        versionName "2.0.0"  // Dəyişmədi
    }
}

// Versiyaların runtime-da yoxlanılması
val code = BuildConfig.VERSION_CODE
val name = BuildConfig.VERSION_NAME
println("Kod: $code, Ad: $name")

build.gradle-də Version Code konfiqurasiyası

Version Code konfiqurasiyası tətbiq modulunun build.gradle faylında aparılır. versionCode sahəsi tam ədəd qəbul edir və defaultConfig blokunda yerləşir. Müxtəlif flavour qurulmaları üçün məhsul konfiqurasiyasında versionCode sahəsi vasitəsilə öz dəyərlər təyin edilə bilər.

Əsas konfiqurasiya

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 müxtəlif konfiqurasiyalar üçün müxtəlif Version Code istifadə etməyə imkan verir: demo versiya, planşetlər üçün ayrı versiya. Layihədə flavors istifadə olunursa, yekun Version Code baza ədədi və flavour-spesifik artımdan ibarətdir. Google Play hər kombinasiyanı müstəqil şəkildə izləyir.

CI vasitəsilə artımın avtomatlaşdırılması

CI/CD boru kəmərlərində (GitHub Actions, GitLab CI, Jenkins) Version Code tez-tez qurulma nömrəsi və ya tarix əsasında avtomatik yaradılır. Bu, əl ilə yeniləmə zamanı insan səhvlərini aradan qaldırır. Skript build.gradle-dən cari Version Code-u oxuyur, artırır və qurulma başlamazdan əvvəl geri yazır.

kotlin
// Version Code-un avtomatik artımı
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-də nəşr üçün Version Code qaydaları

Google Play tətbiqlərin nəşri və yenilənməsi zamanı Version Code üçün ciddi qaydalara malikdir. Bu qaydaların pozulması qurulmanın rədd edilməsinə və ya yeniləmənin buraxıla bilməməsinə səbəb olur. Proqramçı həyat dövrünün bütün mərhələlərində məhdudiyyətləri və kod idarəetmə strategiyalarını başa düşməlidir.

Monoton artım qaydası

Google Play Version Code-u cari nəşr olunmuşdan kiçik və ya bərabər olan APK və ya AAB yükləməyə icazə vermir. Bu qayda hər bir trek (production, beta, alpha) üçün müstəqil işləyir. Production trekinə Version Code 10 olan qurulma yüklənmişsə, alpha trekində isə kod 5-dirsə, alpha treki 6, 7, 8 və ya 9-a yenilənə bilər, lakin production 10 olaraq qalır.

Treklər arasında miqrasiya

Qurulmanın alpha-dan beta-ya, sonra isə production-a yüksəldilməsi zamanı Version Code hər mərhələdə artmalıdır. Alpha versiyasının kodu 10-dursa, beta 11-i, production isə 12-ni istifadə edə bilər. Production hələ görməmiş olsa belə, alpha artıq 10 istifadə edirsə, production-a kod 10 olan qurulmanı yerləşdirmək olmaz.

  • Monotonous increment — trekdəki hər qurulma eyni trekdə əvvəlkindən böyük Version Code-a malikdir
  • Cross-track awareness — treklər arasında yüksəldilmə zamanı Version Code ardıcıl artır
  • Internal testing — daxili test trek də eyni monotonluq qaydalarından istifadə edir
  • Multiple APKs — köhnə nəşr formatı hər APK üçün unikal Version Code tələb edirdi

Version Code təyin edərkən səhvlər

Ən geniş yayılmış səhv — bir trekin müxtəlif qurulmalarında Version Code-un üst-üstə düşməsidi. Google Play APK_VERSION_CODE_ALREADY_EXISTS xətasını qaytarır. Digər səhv — maksimum dəyər 2100000000-nın aşılmasıdır ki, bu da tərtib zamanı xətaya səbəb olur. Münaqişələrin qarşısını almaq üçün CI sistemində kodun avtomatik yaradılmasını qurulma nömrəsi və ya qurulma tarixi ilə əlaqələndirərək istifadə edin.

Proqramçılar tez-tez alternativ trek üçün hotfix qurulmasında Version Code-u artırmamaq səhvini edirlər. Production-un kodu 15-dirsə, alpha treki isə 14-də qalıbsa, alpha-nın production-a yüksəldilməsi zamanı Google Play qurulmanı rədd edəcək, çünki onun kodu cari production-dan kiçikdir. Bütün treklərdə eyni vaxtda kodun monotonluğunu izləyin — bunun üçün bütün treklərin cari dəyəri oxuduğu vahid version.properties faylından istifadə etmək rahatdır.

Tez-tez verilən suallar

Cari Version Code-dan kiçik yeniləmə buraxmaq olarmı?

Xeyr, Google Play eyni trekdə cari nəşr olunmuşdan kiçik və ya bərabər Version Code olan qurulmanı yükləməyə icazə vermir. Sistem yükləmə zamanı kodu yoxlayır və monoton artım qaydası pozulduqda xəta qaytarır. Alfa və beta trekləri üçün də eyni prinsip müstəqil şəkildə tətbiq olunur.

Tətbiqin ilk nəşri üçün hansı Version Code göstərilməlidir?

İlk nəşr üçün Version Code 1 göstərilə bilər. Google Play müsbət tam ədəddən başqa heç bir minimal hədd təyin etmir. 1-dən başlamaq və hər sonrakı qurulmada 1 vahid artırmaq tövsiyə olunur. Timestamp formatından istifadə edirsinizsə, ilk qurulma 20260701 ola bilər.

Google Play-də Version Code Version Name ilə necə əlaqəlidir?

Version Code — sistem tərəfindən müqayisə üçün istifadə olunan daxili maşın identifikatorudur. Version Name — Google Play və cihazda göstərilən istifadəçi etiketidir. İstifadəçi Version Name-i (məsələn, 2.0.0) görür, Google Play isə yeniləmə ehtiyacını müyyənləşdirmək üçün Version Code-dan istifadə edir.

Version Code-un maksimum dəyəri aşılarsa nə baş verir?

Maksimum Version Code dəyəri — 2100000000 (Integer.MAX_VALUE). Aşıldıqda, kompilyator xəta qaytarır, çünki sahə int tipinə malikdir. Çox sayda qurulması olan layihələr (günlük buraxılışlarla CI/CD) üçün timestamp formatından istifadə etmək və ya major versiyanın başlanğıcı ilə sayıcını sıfırlamaq tövsiyə olunur.

Version Code A/B testi üçün istifadə edilə bilərmi?

Version Code birbaşa A/B testi üçün istifadə olunmur, lakin dolayı yolla təsir edir. Google Play müəyyən qurulma üçün istifadəçilərin faizinə görə mərhələli yayımlamanı (staged rollout) konfiqurasiya etməyə imkan verir. Version Code qurulmanı identifikasiya edir, A/B testləri isə Firebase Remote Config və ya oxşar xidmətlər vasitəsilə konfiqurasiya edilir.

Nəticə

  • Version Code — Android tətbiqinin hər qurulmasını unikal şəkildə identifikasiya edən tam ədəd
  • Google Play tətbiqin yenilənmə ehtiyacını müyyənləşdirmək üçün Version Code-dan istifadə edir
  • Artım qaydası — hər yeni qurulma eyni trekdə əvvəlkindən ciddi şəkildə böyük koda malik olmalıdır
  • Dəyər diapazonu — 1-dən 2100000000-dək (Integer.MAX_VALUE)
  • Version Name — istifadəçi mətn etiketi, yeniləmə mexanizminə təsir etmir
  • Avtomatlaşdırma — CI/CD sistemləri qurulma nömrəsi və ya timestamp əsasında Version Code yarada bilər
  • Tövsiyə — nəşrdən əvvəl artım strategiyası seçin və bütün həyat dövrü boyunca ona əməl edin

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun