Marketing Version, uygulama mağazalarında ve cihazda görüntülenen, kullanıcıya yönelik uygulama sürüm dizesidir. Build Number'dan farklı olarak, bu parametre kullanıcı algısına yöneliktir ve anlamsal bir öneme sahiptir. Apple Developer, 2025'e göre, Marketing Version'ın doğru kullanımı, kullanıcıların güncellemelere olan güvenini artırır.
Önemli Noktalar
Marketing Version, son kullanıcı için uygulama sürümünü temsil eden anlamsal bir dizedir. iOS'ta CFBundleShortVersionString anahtarıyla, Android'de versionName ile ayarlanır.
“Marketing Version” terimi resmi olarak Xcode'da kullanılır: hedef ayarları arayüzünde alan adı “Marketing Version” olarak geçer ve Info.plist'te CFBundleShortVersionString'e karşılık gelir. Android'de karşılığı versionName'dir, ancak bu terim daha az kullanılır.
Apple Developer Belgeleri (2025)'ne göre, Marketing Version en fazla noktalarla ayrılmış üç sayıdan oluşmalı, boşluk veya özel karakter içermemelidir. Her sayı 255'i geçmemelidir.
Marketing Version'ınızı değişikliklerin önemini yansıtacak şekilde seçin: temel değişiklikler için ana sürüm, yeni işlevler için alt sürüm.
Marketing Version, amaç açısından Build Number'dan temel olarak farklıdır: birincisi kullanıcıyı bilgilendirir, ikincisi derlemeyi mağaza için tanımlar. Build Number, Marketing Version değiştirilmeden artırılabilir.
Örneğin, yayınlanmış bir sürümdeki kritik bir hatayı düzeltirken, ekip aynı Marketing Version (1.2.0) ile ancak daha yüksek bir Build Number (15'ten 16'ya) ile uygulamayı yeniden derleyebilir. Kullanıcı aynı sürümü görecek, ancak mağaza derlemenin daha yeni olduğunu bilecektir.
Bu esneklik, geliştiricilerin sürüm değişikliği hakkında kullanıcıları bilgilendirmeden düzeltmeler yayınlamasına olanak tanır.
Marketing Version, kullanıcının uygulamayla etkileşiminin birkaç önemli noktasında görünür. Uygulama mağazasında, uygulama kartında, güncelleme açıklamasında ve sürüm geçmişinde görünür.
Cihazda, Marketing Version sistem ayarlarında (“Hakkında” veya “Uygulamalar” bölümü), App Store veya Google Play üzerinden güncelleme iletişim kutularında ve uygulamanın içindeki “Hakkında” ekranında gösterilir.
Net bir Marketing Version, kullanıcıların yüklü sürümün güncelliğini değerlendirmesine ve güncelleme kararı almasına yardımcı olur.
iOS'ta Marketing Version, Xcode'da hedef ayarlarının General sekmesindeki “Marketing Version” alanıyla ayarlanır. Değer Info.plist'te CFBundleShortVersionString olarak kaydedilir.
Sürüm biçimi Apple tarafından sıkı bir şekilde düzenlenmiştir: dize, noktalarla ayrılmış bir ila üç sayı içermelidir (örneğin, 1, 1.2 veya 1.2.3). Maksimum uzunluk 18 karakterdir. Her sayı 255'i geçmemelidir.
Apple App Store İnceleme Yönergeleri (2025)'ne göre, App Store Connect, Marketing Version önceki yayınlanmış sürümden bir ana veya alt değerden fazla farklılık gösteriyorsa bir derlemenin yüklenmesine izin vermez — bu, kullanıcıları kaçırılan güncellemelerden korur.
Komut satırından Marketing Version'ı yönetmek için agvtool kullanın — CI/CD entegrasyonunu basitleştirir ve Build Number ile senkronizasyonu garanti eder.
Android'de Marketing Version, build.gradle dosyasındaki versionName parametresiyle ayarlanır. iOS'tan farklı olarak Android, sürüm dizesi biçimine katı kısıtlamalar getirmez.
versionName herhangi bir karakter içerebilir: harfler, rakamlar, tireler ve noktalar. Google Play bu dizeyi uygulama kartında ve güncelleme listesinde görüntüler, ancak herhangi bir kalıba göre doğrulama yapmaz.
Ancak Google Play, tutarlılık için anlamsal Major.Minor.Patch biçimini izlemeyi önerir. Bu, kullanıcıların sürümü anlamasını kolaylaştırır ve otomatik güncelleme analizine olanak tanır.
Sürüm türünü — ana, alt veya yama — açıkça yansıtan bir versionName belirleyin. Bu, kullanıcıların değişikliklerin önemini hızlıca değerlendirmesine yardımcı olur.
Android'de versionName, Git etiketlerine veya CI/CD değişkenlerine dayalı olarak dinamik bir şekilde oluşturulabilir. Bu, sürümleme sürecini basitleştirir ve depo ile derleme arasındaki tutarsızlıkları ortadan kaldırır.
Tipik bir yaklaşım, bir Git etiketi (örneğin, v2.1.0) okumak ve değerini versionName olarak kullanmaktır. Etiket yoksa, tarih ve commit numarasına dayalı bir sürüm oluşturulabilir.
Bu yaklaşım, versionName'in her zaman kaynak kod durumuyla eşleşmesini ve manuel güncelleme gerektirmemesini sağlar.
Marketing Version ve Build Number, farklı amaçlara hizmet eden iki bağımsız parametredir. Marketing Version kullanıcıyı bilgilendirirken, Build Number teknik olarak derlemeyi tanımlar.
Temel fark benzersizliktir. Build Number her derleme için benzersiz olmalıdır. Marketing Version tekrarlanabilir: aynı sürümün birden çok derlemesi aynı Marketing Version'ı paylaşır ancak farklı Build Number'lara sahiptir.
Google Play Politikası (2025)'ne göre, aynı Marketing Version ancak farklı Build Number'lara sahip iki APK yüklerseniz, Google Play her ikisini de aynı sürümün farklı derlemeleri olarak kabul eder. App Store için de aynı kural geçerlidir.
Unutmayın: Build Number makineler içindir, Marketing Version insanlar içindir. İlkini otomatikleştirin ve ikincisini dikkatlice planlayın.
Bir strateji seçmek, uygulama türüne, hedef kitleye ve yayınlama sürecine bağlıdır. Üç ana şema — anlamsal, takvim ve hibrit — çoğu senaryoyu kapsar.
Anlamsal Sürümleme (SemVer), Major.Minor.Patch biçimini kullanır ve her bileşenin ne zaman artırılacağını kesin olarak tanımlar. Genel API ve karmaşık entegrasyona sahip uygulamalar için idealdir.
semver.org (2023)'e göre, SemVer belirtiminin 2.0.0 sürümü, açık kaynak mobil projelerinin %89'unda kullanılır ve tüm paket yöneticileri tarafından desteklenir.
Takvim Sürümlemesi (CalVer), yayın tarihini sürüm olarak kullanır — örneğin, Haziran 2025 için 25.06. Bu yaklaşım, sık güncellenen uygulamalarda popülerdir.
CalVer, değişikliklerin önemi hakkında bilgi iletmez, ancak sürümün güncelliğini açıkça gösterir. Kullanıcılar, 25.06 sürümünün 25.03'ten daha yeni olduğunu hemen anlar.
Uygulamanız sık sık güncelleniyorsa ve kullanıcılar değişikliklerin kapsamından çok veri güncelliğini önemsiyorsa takvim sürümlemesini seçin.
MVP ve startup'lar için yamasız basit bir anlamsal sürüm (Major.Minor) uygundur. Uzun vadeli destekli olgun ürünler için — tam SemVer. Sürekli yayın yapan uygulamalar için — CalVer.
Asla tarihi Build Number olarak kullanmayın — bu, günde birden çok derleme olduğunda çakışmalara yol açabilir. Build Number sıralı veya bileşik olmalı, ancak her zaman tekdüze artan olmalıdır.
Tipik bir hata, yeni bir ana hatta geçerken sürüm bileşenini atlamaktır. Örneğin, 1.9.9 sürümünden sonraki sürüm 2.0.0 olmalıdır, 1.10.0 değil. Bu, anlambilimi bozar ve kullanıcıların kafasını karıştırır.
Diğer bir yaygın sorun, kod ile uygulama mağazası arasındaki Marketing Version uyuşmazlığıdır. İnceleme için bir derleme göndermeden önce build.gradle'daki versionName'in Google Play Console veya App Store Connect'te belirtilen sürümle eşleştiğini her zaman doğrulayın.
Kod örnekleri, her iki platformda Marketing Version'ın nasıl ayarlanacağını ve güncellemesinin nasıl otomatikleştirileceğini gösterir.
Android'de versionName, build.gradle'da ayarlanır. Değer statik olabilir veya bir ortam değişkeninden okunabilir.
android {
defaultConfig {
versionCode 15
versionName "2.1.0"
}
}
// Git etiketinden sürüm okuma
def getVersionNameFromGit = {
def tag = "git describe --tags".execute().
text.trim()
return tag.startsWith("v") ? tag.substring(1) : tag
}
versionName, bir Git etiketinden çıkarılır ve depo sürümü ile derlenmiş uygulama arasında uyum sağlar.
iOS'ta Marketing Version, Xcode veya agvtool aracılığıyla ayarlanır. Aşağıdaki komut yeni bir pazarlama sürümü belirler.
# Marketing Version'ı ayarla
xcrun agvtool new-marketing-version 2.1.0
# Otomatik artırım
xcrun agvtool next-marketing-version
agvtool, Info.plist'i otomatik olarak günceller ve sürümü Xcode projesinin tüm hedefleri arasında senkronize eder.
Fastlane, tek bir betikten her iki platformda Marketing Version'ı yönetmeye olanak tanıyarak çapraz platform proje bakımını basitleştirir.
# Pazarlama sürümünü ayarla
increment_version_number(
version_number: "2.1.0"
)
# Alt sürümün otomatik artırımı
increment_version_number(
bump_type: "minor"
)
Fastlane her iki platformda da çalışır ve çoğu CI/CD hizmeti tarafından desteklenir.
Sıkça Sorulan Sorular
Marketing Version kullanıcıya görünen sürümdür (mağazada gösterilir), Build Number ise dahili bir derleme tanımlayıcısıdır. Marketing Version tekrarlanabilir, Build Number her derleme için benzersiz olmalıdır.
Her yeni işlev yayınında, API değişikliğinde veya büyük düzeltmede. Acil düzeltme (hotfix) yayınlarında Marketing Version değişmeden kalabilir — sadece Build Number'ı artırın.
Android'de — evet, versionName herhangi bir karakter içerebilir. iOS'ta — yalnızca sayılar ve noktalar. Apple, App Store uyumluluğu için sayısal bir biçim kullanılmasını önerir.
Önerilmez. Uygulama mağazaları sürüm geri almayı desteklemez. Bunun yerine, düzeltmelerle yeni bir sürüm yayınlayın ve yama bileşenini artırın. Kullanıcılar otomatik olarak yeni sürüme geçecektir.
Proje kökünde paylaşılan bir yapılandırma dosyası (örneğin, version.properties) kullanın. Her iki platformdaki derleme betikleri sürümü bu dosyadan okur ve değer senkronizasyonunu sağlar.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun