Version Code: nima, raqamli identifikator va yangilanishlar

Muallif: IT Sectr Nashr etilgan: 2026-04-17 O'qish vaqti: 8 daq

Version Code — bu Android rivojlanishidagi musbat butun son bo‘lib, ilovaning har bir yangi qurilishini yagona tarzda identifikatsiya qiladi. Google Play va Android tizimi yangilanish zaruriyatini aniqlash uchun Version Code-dan foydalanadi: agar yangi qurilish kodi o‘rnatilgan versiyadan katta bo‘lsa, yangilanish jarayoni ishga tushiriladi. Android Developer Documentation ga ko‘ra, Version Code foydalanuvchiga ko‘rsatilmaydi va faqat versiyalarning ichki raqamlanishi uchun xizmat qiladi.

Asosiy

  • Version Code — Google Play uchun Android ilovasi qurilishining raqamli identifikatori
  • Oshirish — har bir yangi qurilish avvalgisidan katta Version Code-ga ega bo‘lishi kerak
  • Version Name — foydalanuvchi uchun matnli versiya, yangilanish mexanizmiga ta‘sir qilmaydi
  • Sozlash build.gradle faylida versionCode maydoni orqali amalga oshiriladi
  • Cheklov — Version Code-ning maksimal qiymati 2100000000

Android-da Version Code nima

Version Code — bu Integer turidagi butun son bo‘lib, Android ilovasining har bir qurilishiga tayinlanadi. Version Name-dan farqli o‘laroq, Version Code foydalanuvchiga ko‘rsatilmaydi va faqat operatsion tizim va Google Play tomonidan yangilanishlarni o‘rnatishda versiyalarni solishtirish uchun ishlatiladi.

Version Code formati

Version Code 1 dan 2100000000 gacha bo‘lgan diapazonda musbat butun son bo‘lishi kerak. Har bir keyingi qurilish avvalgisidan qat‘iy katta Version Code-ga ega bo‘lishi kerak. Agar dasturchi Version Code 5 bo‘lgan qurilishni chiqargan bo‘lsa, keyingi nashr 6, 7 yoki 5 dan katta har qanday raqamni ishlatishi mumkin, lekin 4 yoki yana 5 emas.

Paydo bo‘lish tarixi

Google 2007 yilda Android SDK chiqarilishi bilan Version Code va Version Name ga bo‘lishni joriy qildi. Version Code versiyalarni avtomatik solishtirish uchun mashina identifikatori sifatida, Version Name esa inson o‘qiy oladigan yorliq sifatida yaratilgan. Bunday bo‘linish dasturchiga versiyani xohlagancha nomlash imkonini beradi, shu bilan birga raqamli kod orqali qat‘iy yangilanish tartibini saqlaydi.

ParametrVersion CodeVersion Name
Ma’lumot turiIntegerString
Foydalanuvchiga ko‘rsatishYo‘qHa
Versiyalarni solishtirishRaqamli solishtirishIshlatilmaydi
Format1, 2, 3, 10, 1001.0.0, 2.3.1-rc
Diapazon1 — 2100000000Cheklanmagan

Version Code orqali versiyalash qanday ishlaydi

Solishtirish mexanizmi Version Code Android operatsion tizimi va Google Play do‘koniga o‘rnatilgan. Har bir nashrda Google Play yangi qurilishning Version Code i o‘rnatilgan versiya kodidan katta ekanligini tekshiradi. Agar shart bajarilmasa, nashr xato bilan rad etiladi.

Yangilanishni tekshirish jarayoni

Qurilma yangilanishlarni tekshirish uchun Google Play ga murojaat qilganda, server o‘rnatilgan ilovaning Version Code-ni do‘konda mavjud bo‘lgan maksimal bilan solishtiradi. Serverdagi kod katta bo‘lsa — yangilanishni yuklab olish va o‘rnatish boshlanadi. Foydalanuvchi dasturchi tomonidan ko‘rsatilgan Version Name-ni ko‘radi, ammo yangilanish haqidagi qaror Version Code asosida qabul qilinadi.

Version Code oshirish

Dasturchilar Version Code-ni oshirish uchun turli strategiyalarni qo‘llaydilar. Eng oddiyi — har bir qurilishda 1 ga oshirish. CI/CD quvurlari uchun ko‘pincha timestamp yoki qurilish raqami ishlatiladi: 2026070301 (yil-oy-kun-raqam). Kodning monoton ravishda o‘sishi va turli qurilishlar va Google Play treklari o‘rtasida takrorlanmasligi muhim.

  • Monoton oshirish — release filialiga har bir commit-da 1 ga oshirish
  • Timestamp formati — kunlik qurilishlar uchun 20260703, kuniga bir nechtasi uchun 2026070301
  • Raqamlarda SemVer — 1.1.0 versiyasi uchun 100010000 (major 1, minor 1, patch 0)
  • Qurilish raqami — CI tizimidan (Jenkins, GitHub Actions) BUILD_NUMBER dan foydalanish

Version Code va Version Name o‘rtasidagi farqlar

Version Code va Version Name — build.gradle faylidagi turli funksiyalarni bajaradigan ikkita mustaqil maydon. Version Code tizim uchun ichki identifikator, Version Name foydalanuvchi uchun marketing yorlig‘i. Ular bir-biridan mustaqil ravishda o‘zgarishi mumkin.

Foydalanuvchi uchun Version Name

Version Name — bu ilova sozlamalarida, Google Play-da va yangilanish dialoglarida ko‘rsatiladigan matn qatoridir. Dasturchi istalgan formatni belgilashi mumkin: 1.0.0, 2.3.1-beta, 3.0-rc1. Matnli versiyalarni solishtirish uchun Version Name ishlatilmaydi — Google Play har doim Version Code-ga tayanadi.

Farqlilik stsenariylari

Version Code o‘sib, Version Name o‘zgarmasdan qoladigan vaziyat mumkin. Masalan, dasturchi funksionallikni o‘zgartirmasdan hotfix qurilishida kritik xatoni tuzatsa. Version Name 2.0.0 bo‘lib qoladi, Version Code esa 5 dan 6 ga o‘zgaradi. Google Play bunday yangilanishni to‘g‘ri qayta ishlaydi.

groovy
// Misol: version name o‘zgarmaydi, code oshadi
android {
    defaultConfig {
        versionCode 6  // 5 edi — yangi funksiyalarsiz hotfix
        versionName "2.0.0"  // O‘zgarmadi
    }
}

// Versiyalarni runtime-da tekshirish
val code = BuildConfig.VERSION_CODE
val name = BuildConfig.VERSION_NAME
println("Kod: $code, Nom: $name")

build.gradle-da Version Code sozlamalari

Version Code sozlamalari ilova modulining build.gradle faylida amalga oshiriladi. versionCode maydoni butun sonni qabul qiladi va defaultConfig blokida joylashgan. Turli flavour qurilishlari uchun mahsulot konfiguratsiyasida versionCode maydoni orqali o‘z qiymatlarni belgilash mumkin.

Asosiy konfiguratsiya

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 turli konfiguratsiyalar uchun turli Version Code lardan foydalanishga imkon beradi: demo versiya, planshetlar uchun alohida versiya. Loyihada flavors ishlatilsa, yakuniy Version Code asosiy raqam va flavour-ga xos oshirishdan iborat. Google Play har bir kombinatsiyani mustaqil ravishda kuzatadi.

CI orqali oshirishni avtomatlashtirish

CI/CD quvurlarida (GitHub Actions, GitLab CI, Jenkins) Version Code ko‘pincha qurilish raqami yoki sana asosida avtomatik ravishda yaratiladi. Bu qo‘lda yangilashda inson xatolarini bartaraf qiladi. Skript build.gradle dan joriy Version Code-ni o‘qiydi, uni oshiradi va qurilish boshlanishidan oldin qayta yozadi.

kotlin
// Version Code ni avtomatik oshirish
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-da nashr qilish uchun Version Code qoidalari

Google Play ilovalarni nashr qilish va yangilashda Version Code uchun qat‘iy qoidalarga ega. Ushbu qoidalarning buzilishi qurilishning rad etilishiga yoki yangilanishni chiqarishning imkonsizligiga olib keladi. Dasturchi hayotiy tsiklning barcha bosqichlarida cheklovlar va kodni boshqarish strategiyalarini tushunishi kerak.

Monoton o‘sish qoidasi

Google Play Version Code i joriy nashr qilinganidan kichik yoki teng bo‘lgan APK yoki AAB ni yuklashga ruxsat bermaydi. Bu qoida har bir trek (production, beta, alpha) uchun mustaqil ravishda ishlaydi. Agar production-ga Version Code 10 bo‘lgan qurilish yuklangan bo‘lsa va alpha da kod 5 bo‘lsa, alpha treki 6, 7, 8 yoki 9 ga yangilanishi mumkin, ammo production 10 da qoladi.

Treklar o‘rtasida migratsiya

Qurilishni alpha dan beta ga, keyin esa production ga ko‘tarishda Version Code har bir bosqichda o‘sishi kerak. Alpha versiyasi kod 10 ga ega bo‘lsa, beta 11 ni, production esa 12 ni ishlatishi mumkin. Agar alpha allaqachon 10 dan foydalanayotgan bo‘lsa, production hali ko‘rmagan bo‘lsa ham, production ga kod 10 bo‘lgan qurilishni joylashtirib bo‘lmaydi.

  • Monotonous increment — trekdagi har bir qurilish bir xil trekdagi avvalgisidan katta Version Code-ga ega
  • Cross-track awareness — treklar o‘rtasida ko‘tarishda Version Code ketma-ket oshadi
  • Internal testing — ichki test trek bir xil monotonlik qoidalaridan foydalanadi
  • Multiple APKs — eski nashr formati har bir APK uchun noyob Version Code talab qilgan

Version Code belgilashda xatolar

Eng keng tarqalgan xato — bir trekka yuklangan turli qurilishlarda Version Code ning mos kelishi. Google Play APK_VERSION_CODE_ALREADY_EXISTS xatosini qaytaradi. Yana bir xato — maksimal qiymat 2100000000 dan oshib ketish, bu kompilyatsiya xatosiga olib keladi. Mojarolarni oldini olish uchun CI tizimida kodni avtomatik yaratishni qurilish raqami yoki qurilish sanasi bilan bog‘lab foydalaning.

Dasturchilar ko‘pincha muqobil trek uchun hotfix qurilishida Version Code ni oshirmaslik xatosini qiladilar. Agar production kodi 15 bo‘lsa va alpha treki 14 da qolsa, alpha ni production ga ko‘tarishda Google Play qurilishni rad etadi, chunki uning kodi joriy production dan kichik. Barcha treklarda bir vaqtning o‘zida kod monotonligini kuzatib boring — buning uchun barcha treklar joriy qiymatni o‘qiydigan yagona version.properties faylidan foydalanish qulay.

Ko‘p beriladigan savollar

Joriy Version Code-dan kichik yangilanishni chiqarish mumkinmi?

Yo‘q, Google Play bir xil trekda joriy nashr qilinganidan kichik yoki teng Version Code bo‘lgan qurilishni yuklashga ruxsat bermaydi. Tizim yuklash vaqtida kodni tekshiradi va monoton o‘sish qoidasi buzilgan bo‘lsa, xato qaytaradi. Alfa va beta treklar uchun ham xuddi shu printsip mustaqil ravishda amal qiladi.

Ilovaning birinchi nashri uchun qanday Version Code ko‘rsatiladi?

Birinchi nashr uchun Version Code 1 ko‘rsatilishi mumkin. Google Play musbat butun sondan tashqari hech qanday minimal chegara belgilamaydi. 1 dan boshlash va har bir keyingi qurilishda 1 ga oshirish tavsiya etiladi. Agar timestamp formatidan foydalansangiz, birinchi qurilish 20260701 bo‘lishi mumkin.

Google Play-da Version Code Version Name bilan qanday bog‘liq?

Version Code — tizim tomonidan solishtirish uchun ishlatiladigan ichki mashina identifikatori. Version Name — Google Play va qurilmada ko‘rsatiladigan foydalanuvchi yorlig‘i. Foydalanuvchi Version Name (masalan, 2.0.0) ni ko‘radi, Google Play esa yangilanish zaruriyatini aniqlash uchun Version Code dan foydalanadi.

Version Code maksimal qiymati oshib ketsa nima bo‘ladi?

Maksimal Version Code qiymati — 2100000000 (Integer.MAX_VALUE). Oshib ketganda, kompilyator xato qaytaradi, chunki maydon int turiga ega. Ko‘p sonli qurilishlari bo‘lgan loyihalar (kundalik chiqarishlar bilan CI/CD) uchun timestamp formatidan foydalanish yoki major versiya boshlanishi bilan hisoblagichni qayta tiklash tavsiya etiladi.

Version Code A/B testi uchun ishlatilishi mumkinmi?

Version Code to‘g‘ridan-to‘g‘ri A/B testi uchun ishlatilmaydi, ammo bilvosita unga ta‘sir qiladi. Google Play ma’lum bir qurilish uchun foydalanuvchilarning foiziga qarab bosqichma-bosqich chiqarishni (staged rollout) sozlash imkonini beradi. Version Code qurilishni identifikatsiya qiladi, A/B testlari esa Firebase Remote Config yoki shu kabi xizmatlar orqali sozlanadi.

Xulosa

  • Version Code — Android ilovasining har bir qurilishini yagona identifikatsiya qiluvchi butun son
  • Google Play ilovani yangilash zaruriyatini aniqlash uchun Version Code dan foydalanadi
  • Oshirish qoidasi — har bir yangi qurilish bir xil trekdagi avvalgisidan qat‘iy katta kodga ega bo‘lishi kerak
  • Qiymat diapazoni — 1 dan 2100000000 gacha (Integer.MAX_VALUE)
  • Version Name — foydalanuvchi matn yorlig‘i, yangilanish mexanizmiga ta‘sir qilmaydi
  • Avtomatlashtirish — CI/CD tizimlari qurilish raqami yoki timestamp asosida Version Code yaratishi mumkin
  • Tavsiya — nashrdan oldin oshirish strategiyasini tanlang va butun hayotiy tsikl davomida unga rioya qiling

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing