Marketing Version — bu foydalanuvchi tomonidan ko'rinadigan, ilovalar do'konlarida va qurilmada aks ettiriladigan ilova versiyasidir. Build Number-dan farqli o'laroq, ushbu parametr foydalanuvchi idrokiga yo'naltirilgan va semantik ma'noga ega. Apple Developer, 2025 ma'lumotlariga ko'ra, Marketing Version-dan to'g'ri foydalanish foydalanuvchilarning yangilanishlarga bo'lgan ishonchini oshiradi.
Asosiy ma'lumotlar
Marketing Version — bu yakuniy foydalanuvchi uchun ilova versiyasini ifodalovchi semantik satrdir. iOS da CFBundleShortVersionString kaliti bilan, Android da versionName parametri bilan o'rnatiladi.
„Marketing Version" atamasi Xcode da rasmiy ravishda ishlatiladi: target sozlamalari interfeysidagi maydon „Marketing Version" deb ataladi va Info.plist da CFBundleShortVersionString ga mos keladi. Android da uning o'xshashi versionName dir, garchi bu atama kamroq ishlatilsa ham.
Apple Developer Documentation (2025) ga ko'ra, Marketing Version eng ko'pi bilan uchta nuqta bilan ajratilgan raqamdan iborat bo'lishi kerak, bo'shliqlar va maxsus belgilarsiz. Har bir raqam 255 dan oshmasligi kerak.
Marketing Version-ni o'zgarishlarning ahamiyatini aks ettiradigan qilib tanlang: tub o'zgarishlar uchun major yangilanishlar, yangi funksionallik uchun minor yangilanishlar.
Marketing Version Build Number-dan maqsadi jihatidan tubdan farq qiladi: birinchisi foydalanuvchini xabardor qiladi, ikkinchisi — do'kon uchun yig'ishni identifikatsiya qiladi. Build Number Marketing Version o'zgarmasdan o'sishi mumkin.
Misol uchun, chiqarilgan versiyadagi muhim xatoni tuzatishda jamoa ilovani bir xil Marketing Version (1.2.0) bilan qayta yig'ishi mumkin, lekin oshirilgan Build Number (15 dan 16 ga) bilan. Foydalanuvchi bir xil versiyani ko'radi, ammo do'kon yig'ish yangiroq ekanligini tushunadi.
Bunday moslashuvchanlik dasturchilarga versiya o'zgarishi haqida foydalanuvchilarni xabardor qilmasdan tuzatishlarni chiqarishga imkon beradi.
Marketing Version foydalanuvchining ilova bilan o'zaro aloqasining bir nechta asosiy nuqtalarida ko'rsatiladi. Ilovalar do'konida u ilova kartasida, yangilanish tavsifida va versiyalar tarixida ko'rinadi.
Qurilmada Marketing Version tizim sozlamalarida („Ilova haqida" yoki „Ilovalar" bo'limi), App Store yoki Google Play orqali yangilanish muloqot oynalarida, shuningdek ilova ichidagi „Dastur haqida" ekranida ko'rsatiladi.
Tushunarli Marketing Version foydalanuvchiga o'rnatilgan versiyaning dolzarbligini baholashga va yangilanish to'g'risida qaror qabul qilishga yordam beradi.
iOS da Marketing Version Xcode da target sozlamalarining General yorlig'idagi „Marketing Version" maydoni orqali o'rnatiladi. Qiymat Info.plist da CFBundleShortVersionString sifatida saqlanadi.
Versiya formati Apple tomonidan qat'iy tartibga solinadi: satr nuqta bilan ajratilgan birdan uchgacha raqamdan iborat bo'lishi kerak (masalan, 1, 1.2 yoki 1.2.3). Maksimal uzunlik — 18 belgi. Har bir raqam 255 dan oshmaydi.
Apple App Store Review Guidelines (2025) ga ko'ra, App Store Connect Marketing Version avvalgi nashr etilgan versiyadan bir major yoki minor qiymatdan ko'proq farq qilsa, bildni yuklashga ruxsat bermaydi — bu foydalanuvchilarni o'tkazib yuborilgan yangilanishlardan himoya qiladi.
Marketing Version-ni boshqarish uchun agvtool dan foydalaning — bu CI/CD tizimlari bilan integratsiyani soddalashtiradi va Build Number bilan sinxronlashni kafolatlaydi.
Android da Marketing Version build.gradle faylidagi versionName parametri bilan o'rnatiladi. iOS dan farqli o'laroq, Android versiya satri formatiga qat'iy cheklovlar qo'ymaydi.
versionName har qanday belgilarni o'z ichiga olishi mumkin: harflar, raqamlar, defislar va nuqtalar. Google Play bu satrni ilova kartasida va yangilanishlar ro'yxatida ko'rsatadi, lekin uni hech qanday andozaga muvofiqligini tekshirmaydi.
Biroq Google Play bir xillik uchun semantik format Major.Minor.Patch ga rioya qilishni tavsiya qiladi. Bu foydalanuvchilar tomonidan versiyani idrok etishni osonlashtiradi va yangilanishlarni tahlil qilishni avtomatlashtirishga imkon beradi.
Reliz turini — major yangilanish, minor yoki patch — aniq aks ettiradigan versionName ni belgilang. Bu foydalanuvchilarga o'zgarishlarning ahamiyatini tez baholashga yordam beradi.
versionName Android da Git teglari yoki CI/CD o'zgaruvchilari asosida dinamik ravishda yaratilishi mumkin. Bu versiyalash jarayonini soddalashtiradi va ombor bilan yig'ish o'rtasidagi nomuvofiqliklarni bartaraf qiladi.
Oddiy yondashuv — Git tegini o'qish (masalan, v2.1.0) va uning qiymatini versionName sifatida ishlatish. Agar teg bo'lmasa, versiya sana va commit raqami asosida yaratilishi mumkin.
Bunday yondashuv versionName har doim manba kodining holatiga mos kelishini kafolatlaydi va qo'lda yangilashni talab qilmaydi.
Marketing Version va Build Number — bu turli vazifalarni hal qiladigan ikkita mustaqil parametrdir. Marketing Version foydalanuvchini xabardor qiladi, Build Number esa texnik jihatdan yig'ishni identifikatsiya qiladi.
Asosiy farq — noyoblik. Build Number har bir yig'ish uchun noyob bo'lishi kerak. Marketing Version takrorlanishi mumkin: bir versiyaning bir nechta bildlari bir xil Marketing Version ga, ammo turli Build Number ga ega.
Google Play Policy (2025) ga ko'ra, bir xil Marketing Version lekin turli Build Number bilan ikkita APK yuklansa, Google Play ikkalasini bir versiyaning turli bildlari sifatida qabul qiladi. App Store uchun ham shunga o'xshash qoida amal qiladi.
Esingizda bo'lsin: Build Number — mashinalar uchun, Marketing Version — insonlar uchun. Birinchisini avtomatlashtiring, ikkinchisini diqqat bilan rejalashtiring.
Strategiyani tanlash ilova turiga, auditoriyaga va reliz jarayoniga bog'liq. Uchta asosiy sxema — semantik, kalendar va gibrid — ko'pchilik stsenariylarni qamrab oladi.
Semantik versiya (SemVer) Major.Minor.Patch formatidan foydalanadi va qaysi komponentni qachon oshirishni qat'iy belgilaydi. Ommaviy API va murakkab integratsiyaga ega ilovalar uchun idealdir.
semver.org (2023) ma'lumotlariga ko'ra, SemVer spetsifikatsiyasining 2.0.0 versiyasi 89% ochiq manbali mobil loyihalarda ishlatiladi va barcha paket menejerlari tomonidan qo'llab-quvvatlanadi.
Kalendar versiyalash (CalVer) versiya sifatida reliz sanasidan foydalanadi — masalan, 2025 yil iyuni uchun 25.06. Bu yondashuv tez-tez yangilanadigan ilovalarda mashhur.
CalVer o'zgarishlarning ahamiyati haqida ma'lumot bermaydi, lekin versiyaning yangiligini mukammal ko'rsatadi. Foydalanuvchi darhol 25.06 versiyasi 25.03 dan yangiroq ekanligini tushunadi.
Ilovangiz tez-tez yangilanadigan bo'lsa va foydalanuvchilar uchun ma'lumotlarning yangiligi o'zgarishlar hajmidan muhimroq bo'lsa, kalendar versiyalashni tanlang.
MVP va startaplar uchun patchesiz oddiy semantik versiya (Major.Minor) mos keladi. Uzoq muddatli qo'llab-quvvatlashga ega yetuk mahsulotlar uchun — to'liq SemVer. Uzluksiz relizli ilovalar uchun — CalVer.
Hech qachon sanani Build Number sifatida ishlatmang — bu kuniga bir nechta yig'ish bo'lganda ziddiyatlarga olib kelishi mumkin. Build Number ketma-ket yoki murakkab bo'lishi kerak, lekin har doim monoton o'suvchi bo'lishi kerak.
Oddiy xato — yangi major chizig'iga o'tishda versiya komponentini o'tkazib yuborish. Masalan, 1.9.9 versiyasidan keyin keyingisi 2.0.0 bo'lishi kerak, 1.10.0 emas. Bu semantikani buzadi va foydalanuvchilarni chalg'itadi.
Yana bir tez-tez uchraydigan muammo — kod va ilovalar do'konidagi Marketing Version o'rtasidagi nomuvofiqlik. Bildni ko'rib chiqishga yuborishdan oldin har doim build.gradle dagi versionName Google Play Console yoki App Store Connect da ko'rsatilgan versiyaga mos kelishini tekshiring.
Kod misollari ikkala platformada Marketing Version ni qanday o'rnatish va uning yangilanishini avtomatlashtirishni ko'rsatadi.
Android da versionName build.gradle da o'rnatiladi. Qiymat statik yoki muhit o'zgaruvchisidan o'qilishi mumkin.
android {
defaultConfig {
versionCode 15
versionName "2.1.0"
}
}
// Git tegidan versiyani o'qish
def getVersionNameFromGit = {
def tag = "git describe --tags".execute().
text.trim()
return tag.startsWith("v") ? tag.substring(1) : tag
}
versionName Git tegidan olinadi, bu ombordagi versiya bilan yig'ilgan ilova o'rtasidagi muvofiqlikni kafolatlaydi.
iOS da Marketing Version Xcode yoki agvtool orqali o'rnatiladi. Quyidagi buyruq yangi marketing versiyasini o'rnatadi.
# Marketing Version ni o'rnatish
xcrun agvtool new-marketing-version 2.1.0
# Avtomatik oshirish
xcrun agvtool next-marketing-version
agvtool avtomatik ravishda Info.plist ni yangilaydi va versiyani Xcode loyihasining barcha targetlari o'rtasida sinxronlashtiradi.
Fastlane ikkala platformada Marketing Version ni bitta skriptdan boshqarishga imkon beradi, bu esa o'zaro platforma loyihalarini qo'llab-quvvatlashni soddalashtiradi.
# Marketing versiyasini o'rnatish
increment_version_number(
version_number: "2.1.0"
)
# Minor versiyani avtomatik oshirish
increment_version_number(
bump_type: "minor"
)
Fastlane ikkala platformada ishlaydi va ko'pchilik CI/CD xizmatlari tomonidan qo'llab-quvvatlanadi.
Tez-tez beriladigan savollar
Marketing Version — foydalanuvchi uchun versiya (do'konda ko'rsatiladi), Build Number — yig'ishning ichki identifikatori. Marketing Version takrorlanishi mumkin, Build Number har bir bild uchun noyob bo'lishi kerak.
Har bir yangi funksionallik relizida, API o'zgarishida yoki katta tuzatishda. Tuzatuvchi relizlar (hotfix) uchun Marketing Version o'zgartirilmasligi mumkin — Build Number ni oshirish kifoya.
Android da — ha, versionName har qanday belgilarni o'z ichiga olishi mumkin. iOS da — faqat raqamlar va nuqtalar. Apple App Store bilan moslik uchun raqamli formatga rioya qilishni tavsiya qiladi.
Tavsiya etilmaydi. Ilovalar do'konlari versiyani qaytarishni qo'llab-quvvatlamaydi. Buning o'rniga tuzatishlar bilan yangi versiyani chiqaring va patc komponentini oshiring. Foydalanuvchilar avtomatik ravishda yangi versiyaga o'tadilar.
Loyihaning ildizida umumiy konfiguratsiya faylidan foydalaning (masalan, version.properties). Ikkala platformadagi yig'ish skriptlari versiyani ushbu fayldan o'qiydi, qiymatlarning sinxronlashuvini kafolatlaydi.
Xulosa
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.