Marketing Version — bu, tətbiq mağazalarında və cihazda göstərilən istifadəçi versiyasıdır. Build Number-dan fərqli olaraq, bu parametr istifadəçi tərəfindən qavranılmağa yönəlib və semantik məna daşıyır. Apple Developer, 2025-ə görə, Marketing Version-ın düzgün istifadəsi istifadəçilərin yeniləmələrə inamını artırır.
Əsas məqamlar
Marketing Version — bu, son istifadəçi üçün tətbiqin versiyasını təmsil edən semantik sətirdir. iOS-da CFBundleShortVersionString açarı ilə, Android-də isə versionName parametri ilə təyin edilir.
„Marketing Version" termini Xcode-da rəsmi olaraq istifadə olunur: target parametrləri interfeysində sahə „Marketing Version" adlanır, Info.plist-də isə CFBundleShortVersionString-ə uyğun gəlir. Android-də analoqu versionName-dir, baxmayaraq ki, termin daha az istifadə olunur.
Apple Developer Documentation (2025)-ə görə, Marketing Version maksimum üç nöqtə ilə ayrılmış rəqəmdən ibarət olmalıdır, boşluqlar və xüsusi simvollar olmadan. Hər bir rəqəm 255-dən çox olmamalıdır.
Marketing Version-ı dəyişikliklərin əhəmiyyətini əks etdirəcək şəkildə seçin: əsas dəyişikliklər üçün major yeniləmələr, yeni funksionallıq üçün minor yeniləmələr.
Marketing Version Build Number-dan təyinatına görə prinsipial olaraq fərqlənir: birincisi istifadəçini məlumatlandırır, ikincisi — mağaza üçün yığımı identifikasiya edir. Build Number Marketing Version dəyişmədən arta bilər.
Məsələn, buraxılmış versiyada kritik səhvi düzəldərkən komanda eyni Marketing Version (1.2.0) ilə tətbiqi yenidən yığa bilər, lakin artırılmış Build Number (15-dən 16-ya) ilə. İstifadəçi eyni versiyanı görəcək, lakin mağaza yığımın daha yeni olduğunu anlayacaq.
Belə çeviklik tərtibatçılara versiya dəyişikliyi barədə istifadəçilərə xəbər vermədən düzəlişlər buraxmağa imkan verir.
Marketing Version istifadəçinin tətbiqlə qarşılıqlı əlaqəsinin bir neçə əsas nöqtəsində göstərilir. Tətbiq mağazasında o, tətbiq kartında, yeniləmə təsvirində və versiya tarixçəsində görünür.
Cihazda Marketing Version sistem parametrlərində („Tətbiq haqqında" və ya „Tətbiqlər" bölməsi), App Store və ya Google Play vasitəsilə yeniləmə dialoqlarında, həmçinin tətbiqin daxilində „Proqram haqqında" ekranında göstərilir.
Anlaşılan Marketing Version istifadəçiyə quraşdırılmış versiyanın aktuallığını qiymətləndirməyə və yeniləmə qərarı verməyə kömək edir.
iOS-da Marketing Version Xcode-da target parametrlərinin General vərəqindəki „Marketing Version" sahəsi ilə təyin edilir. Dəyər Info.plist-də CFBundleShortVersionString kimi saxlanılır.
Versiya formatı Apple tərəfindən ciddi şəkildə tənzimlənir: sətir nöqtələrlə ayrılmış birdən üçə qədər rəqəmdən ibarət olmalıdır (məsələn, 1, 1.2 və ya 1.2.3). Maksimum uzunluq — 18 simvol. Hər bir rəqəm 255-dən çox deyil.
Apple App Store Review Guidelines (2025)-ə görə, App Store Connect Marketing Version əvvəlki dərc edilmiş versiyadan bir major və ya minor dəyərdən çox fərqlənirsə, bildın yüklənməsinə icazə vermir — bu, istifadəçiləri buraxılmış yeniləmələrdən qoruyur.
Marketing Version-ı idarə etmək üçün agvtool-dan istifadə edin — bu, CI/CD sistemləri ilə inteqrasiyanı asanlaşdırır və Build Number ilə sinxronizasiyanı təmin edir.
Android-də Marketing Version build.gradle faylında versionName parametri ilə təyin edilir. iOS-dan fərqli olaraq, Android versiya sətirinin formatına ciddi məhdudiyyətlər qoymur.
versionName istənilən simvolları ehtiva edə bilər: hərflər, rəqəmlər, defislər və nöqtələr. Google Play bu sətri tətbiq kartında və yeniləmə siyahısında göstərir, lakin onu hansısa şablona uyğunluğunu yoxlamır.
Lakin Google Play vahidlik üçün semantik format Major.Minor.Patch-ə riayət etməyi tövsiyə edir. Bu, istifadəçilər tərəfindən versiyanın qavranılmasını asanlaşdırır və yeniləmələrin təhlilini avtomatlaşdırmağa imkan verir.
Buraxılış növünü — major yeniləmə, minor və ya patch — aydın şəkildə əks etdirən versionName təyin edin. Bu, istifadəçilərə dəyişikliklərin əhəmiyyətini tez qiymətləndirməyə kömək edir.
versionName Android-də Git teqləri və ya CI/CD dəyişənləri əsasında dinamik olaraq yaradıla bilər. Bu, versiyalaşdırma prosesini asanlaşdırır və repozitoriya ilə yığım arasındakı uyğunsuzluqları aradan qaldırır.
Tipik yanaşma — Git teqinin oxunması (məsələn, v2.1.0) və onun dəyərinin versionName kimi istifadə edilməsidir. Teq yoxdursa, versiya tarix və commit nömrəsi əsasında yaradıla bilər.
Belə yanaşma versionName-in həmişə mənbə kodun vəziyyətinə uyğun olmasını təmin edir və əl ilə yeniləmə tələb etmir.
Marketing Version və Build Number — bunlar müxtəlif vəzifələri həll edən iki müstəqil parametrdir. Marketing Version istifadəçini məlumatlandırır, Build Number isə texniki olaraq yığımı identifikasiya edir.
Əsas fərq — unikallıqdır. Build Number hər bir yığım üçün unikal olmalıdır. Marketing Version təkrarlana bilər: bir versiyanın bir neçə bildı eyni Marketing Version-a, lakin fərqli Build Number-a malikdir.
Google Play Policy (2025)-ə görə, eyni Marketing Version lakin fərqli Build Number ilə iki APK yüklənərsə, Google Play hər ikisini bir versiyanın fərqli bildları kimi qəbul edəcək. App Store üçün də oxşar qayda tətbiq olunur.
Unutmayın: Build Number — maşınlar üçün, Marketing Version — insanlar üçün. Birincini avtomatlaşdırın, ikincini diqqətlə planlaşdırın.
Strategiya seçimi tətbiq növündən, auditoriyadan və buraxılış prosesindən asılıdır. Üç əsas sxem — semantik, təqvim və hibrid — əksər ssenariləri əhatə edir.
Semantik versiya (SemVer) Major.Minor.Patch formatından istifadə edir və hansı komponentin nə vaxt artırılacağını ciddi şəkildə müəyyənləşdirir. İctimai API və mürəkkəb inteqrasiyası olan tətbiqlər üçün idealdır.
semver.org (2023)-ə görə, SemVer spesifikasiyasının 2.0.0 versiyası 89% open-source mobil layihələrində istifadə olunur və bütün paket menecerləri tərəfindən dəstəklənir.
Təqvim versiyalaşdırması (CalVer) versiya olaraq buraxılış tarixindən istifadə edir — məsələn, 2025-ci ilin iyunu üçün 25.06. Bu yanaşma tez-tez yeniləmələri olan tətbiqlərdə populyardır.
CalVer dəyişikliklərin əhəmiyyəti haqqında məlumat daşımır, lakin versiyanın təzəliyini mükəmməl göstərir. İstifadəçi dərhal anlayır ki, 25.06 versiyası 25.03-dən daha yenidir.
Tətbiqiniz tez-tez yenilənirsə və istifadəçilər üçün məlumatların aktuallığı dəyişikliklərin həcmindən daha vacibdirsə, təqvim versiyalaşdırmasını seçin.
MVP və startaplar üçün sadə semantik versiya patchesiz (Major.Minor) uyğundur. Uzunmüddətli dəstəyi olan yetkin məhsullar üçün — tam SemVer. Fasiləsiz buraxılışları olan tətbiqlər üçün — CalVer.
Heç vaxt tarixi Build Number kimi istifadə etməyin — bu, gündə bir neçə yığım olduqda münaqişələrə səbəb ola bilər. Build Number ardıcıl və ya mürəkkəb olmalıdır, lakin həmişə monoton artan olmalıdır.
Tipik səhv — yeni major xəttinə keçərkən versiya komponentinin atlanması. Məsələn, 1.9.9 versiyasından sonra növbəti 2.0.0 olmalıdır, 1.10.0 yox. Bu, semantikanı pozur və istifadəçiləri çaşdırır.
Digər tez-tez rast gəlinən problem — kodda və tətbiq mağazasında Marketing Version-ın uyğunsuzluğudur. Bildı nəzərdən keçirməyə göndərməzdən əvvəl həmişə build.gradle-dəki versionName-in Google Play Console və ya App Store Connect-də göstərilən versiya ilə uyğun olduğunu yoxlayın.
Kod nümunələri hər iki platformada Marketing Version-ı necə təyin etməyi və yeniləməsini avtomatlaşdırmağı göstərir.
Android-də versionName build.gradle-da təyin edilir. Dəyər statik və ya mühit dəyişənindən oxuna bilər.
android {
defaultConfig {
versionCode 15
versionName "2.1.0"
}
}
// Git teqindən versiyanın oxunması
def getVersionNameFromGit = {
def tag = "git describe --tags".execute().
text.trim()
return tag.startsWith("v") ? tag.substring(1) : tag
}
versionName Git teqindən çıxarılır ki, bu da repozitoriyadakı versiya ilə yığılmış tətbiq arasında uyğunluğu təmin edir.
iOS-da Marketing Version Xcode və ya agvtool vasitəsilə təyin edilir. Aşağıdakı əmr yeni marketinq versiyasını təyin edir.
# Marketing Version-ın təyin edilməsi
xcrun agvtool new-marketing-version 2.1.0
# Avtomatik artırma
xcrun agvtool next-marketing-version
agvtool avtomatik olaraq Info.plist-i yeniləyir və versiyanı Xcode layihəsinin bütün targetləri arasında sinxronizasiya edir.
Fastlane hər iki platformada Marketing Version-ı bir skriptdən idarə etməyə imkan verir ki, bu da çarpaz platforma layihələrinin dəstəklənməsini asanlaşdırır.
# Marketinq versiyasının təyin edilməsi
increment_version_number(
version_number: "2.1.0"
)
# Minor versiyanın avtomatik artırılması
increment_version_number(
bump_type: "minor"
)
Fastlane hər iki platformada işləyir və əksər CI/CD xidmətləri tərəfindən dəstəklənir.
Tez-tez verilən suallar
Marketing Version — istifadəçi üçün versiyadır (mağazada göstərilir), Build Number — yığımın daxili identifikatorudur. Marketing Version təkrarlana bilər, Build Number hər bir bild üçün unikal olmalıdır.
Hər yeni funksionallıq buraxılışında, API dəyişikliyində və ya böyük düzəlişdə. Korreksiyaedici buraxılışlar (hotfix) üçün Marketing Version dəyişdirilə bilməz — Build Number-ı artırmaq kifayətdir.
Android-də — bəli, versionName istənilən simvolları ehtiva edə bilər. iOS-da — yalnız rəqəmlər və nöqtələr. Apple App Store ilə uyğunluq üçün rəqəm formatına riayət etməyi tövsiyə edir.
Tövsiyə edilmir. Tətbiq mağazaları versiyanın geri qaytarılmasını dəstəkləmir. Bunun əvəzinə düzəlişlərlə yeni versiya buraxın və patch komponentini artırın. İstifadəçilər avtomatik olaraq yeni versiyaya keçəcəklər.
Layihənin kökündə ümumi konfiqurasiya faylından istifadə edin (məsələn, version.properties). Hər iki platformada yığım skriptləri versiyanı bu fayldan oxuyur və dəyərlərin sinxronizasiyasını təmin edir.
Xülasə
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.
Həm də oxuyun