Version Name, kullanıcının mağazada ve cihazda gördüğü uygulama sürüm dizesidir. Build Number'dan farklı olarak, bu parametre anlamsal bir anlama sahiptir ve değişikliklerin önemini yansıtır. Android Developers, 2025'e göre, Version Name'in doğru kullanımı, kullanıcıların güncellemelerin uygunluğunu anlamasına ve geliştirme sürecine güvenmesine yardımcı olur.
Önemli Noktalar
Version Name, kullanıcı için uygulama sürümünü tanımlayan anlamsal bir dizedir. Teknik derleme tanımlayıcılarından farklı olarak, bu parametre anlamlı bilgi taşır: kullanıcı yeni bir güncellemenin öncekinden ne kadar farklı olduğunu değerlendirebilir.
Version Name, Google Play ve App Store'daki uygulama kartında, cihazdaki "Uygulama hakkında" bölümünde ve sistem güncelleme iletişim kutularında görüntülenir. Geliştiriciler, sürüm sürümünü derlemeden önce proje yapılandırma dosyalarında bunu belirtir.
Semantic Versioning 2.0 (2023)'e göre, Major.Minor.Patch biçimi mobil uygulamaların %78'inde kullanılır. Ana sürüm, uyumsuz API değişiklikleriyle değişir; alt sürüm, yeni işlevsellik eklemeyle; yama ise hata düzeltmeleriyle değişir.
Kullanıcıyla iletişim kurmak için Version Name'i kullanın: sunulan güncellemenin ne kadar önemli olduğunu — ana, alt veya düzeltici — hemen anlamalıdırlar.
Anlamsal sürüm, noktalarla ayrılmış üç sayıdan oluşur: Major.Minor.Patch. Bu bileşenlerin her biri, uygulamadaki belirli bir değişiklik düzeyinden sorumludur.
Ana sürüm (Major), geriye dönük uyumluluğu bozan köklü değişiklikler yapıldığında artar. Alt sürüm (Minor), mevcut işlevselliği bozmadan yeni işlevsellik ekler. Yama (Patch) yalnızca hata düzeltmeleri içerir.
Örneğin, 3.2.1 sürümü şu anlama gelir: üçüncü ana sürüm, ikinci alt güncelleme, ilk yama. Bu sistem hem geliştiriciler hem de kullanıcılar için anlaşılırdır.
Version Name, kullanıcı için birkaç önemli yerde görünür. Uygulama mağazasında, uygulama kartı başlığında ve güncelleme listesinde görünür. Cihazda, "Uygulama hakkında" bölümündeki sistem ayarlarında görünür.
Google Play'de Version Name, uygulama adının altında gösterilir ve kullanıcının güncelleme kararını etkiler. App Store'da, sürüm dizesi uygulama sayfası görüntülenirken aynı yerde gösterilir.
Apptentive (2024) araştırmasına göre, kullanıcıların %67'si güncellemeden önce uygulama sürümünü kontrol eder ve net anlambilim, yükleme dönüşümünü %23 oranında artırır.
Android'de Version Name, build.gradle dosyasında (modül düzeyinde) versionName parametresiyle ayarlanır. Bu parametre bir dizedir ve noktalar, kısa çizgiler ve harfler dahil herhangi bir karakter içerebilir.
Parametre, zorunlu versionCode parametresiyle birlikte android.defaultConfig bloğu içinde bildirilir. Android, dize biçimine kısıtlama getirmez, ancak Google Play anlamsal biçimi kullanmayı önerir.
Android Developers (2025)'e göre, Google Play versionName'i mağaza arayüzünde görüntüleme için kullanır ancak içeriğini programlı olarak analiz etmez — yalnızca versionCode güncelleme mantığını etkiler.
Version Name'i Major.Minor.Patch biçiminde belirtin ve net sürüm tanımlaması için sürüm kontrol sistemindeki etiketle senkronize edin.
Gradle, build.gradle'da statik olarak veya derleme betikleri aracılığıyla dinamik olarak versionName ayarlamaya izin verir. Dinamik oluşturma, otomatik gece derlemeleri ve CI/CD boru hatları için kullanışlıdır.
build.gradle'da, versionName'i oluşturmak için ortam değişkenleri, komut satırı parametreleri veya shell betik çağrıları kullanılabilir. Tipik bir yaklaşım, sürümü bir version.properties dosyasından okumaktır.
Bu esneklik, ekiplerin sürümleme sürecini otomatikleştirmesine ve sürüm hazırlığı sırasında insan hatasını ortadan kaldırmasına olanak tanır.
iOS'ta Version Name, Info.plist dosyasındaki CFBundleShortVersionString anahtarıyla ayarlanır. Bu, uygulamayı App Store'da yayınlamak için zorunlu bir parametredir ve kesinlikle dize olarak tiplendirilir.
Android'den farklı olarak, App Store Connect Version Name biçimini kontrol eder ve noktalarla ayrılmış sayılardan oluşan bir desenle eşleşmesini gerektirir. Maksimum dize uzunluğu 18 karakterdir ve her sürüm bileşeni 255'i aşamaz.
Apple Developer Documentation (2025)'e göre, CFBundleShortVersionString, App Store tarafından mağaza arayüzünde ve kullanıcının cihazındaki sistem iletişim kutularında sürümü görüntülemek için kullanılır.
App Store Connect'e bir derleme yüklerken, Version Name'in pazarlama materyallerinde belirtilen sürümle eşleştiğinden emin olun — bu, kullanıcılarla iletişimi basitleştirir.
Xcode, hedef ayarlarında Version Name'i değiştirmek için grafiksel bir arayüz sağlar. "Marketing Version" alanı, Identity bölümündeki General sekmesinde bulunur. Değişiklikler otomatik olarak Info.plist'e kaydedilir.
Otomasyon için, Xcode Build Phases'te derleme betikleri veya agvtool (Apple Generic Version Tool) yardımcı programı kullanılabilir. agvtool, komut satırından sürümleri yönetmeye olanak tanır ve CI/CD'ye entegre olur.
Bu yaklaşım, uygulamaların otomatik derlenmesi ve teslimatı için fastlane veya Jenkins kullanırken özellikle kullanışlıdır.
Version Name ve Build Number, geliştirme sürecinde farklı görevler üstlenir. Version Name kullanıcı odaklı bir dizedir, Build Number ise her derlemeyi benzersiz şekilde tanımlayan dahili bir sayısal tanımlayıcıdır.
Build Number (Android'de versionCode, iOS'ta CFBundleVersion) her yeni derlemeyle artmalıdır ve uygulama mağazaları tarafından hangi sürümün daha yeni olduğunu belirlemek için kullanılır. Version Name, aynı sürümün birden çok derlemesinde değişmeden kalabilir.
Google Play Politikası (2025)'ne göre, aynı versionCode'a sahip iki uygulama aynı sürüm olarak kabul edilir — versionCode her APK için benzersiz olmalıdır. Version Name bu kontrole katılmaz.
Her derlemede Build Number'ı her zaman artırın ve Version Name'i yalnızca işlevsellik değiştiğinde değiştirin — bu, yayınlama sırasında çakışmaları önler.
Version Name seçimi, ekibin sürümleme stratejisine bağlıdır. En yaygın yaklaşım anlamsal sürümlemedir (SemVer), ancak takvim sürümlemesi veya yayın tarihi sürümlemesi gibi alternatif şemalar da mevcuttur.
Semantic Versioning 2.0, isteğe bağlı ön yayın ekleriyle Major.Minor.Patch biçimini önerir. Mobil uygulamalar için, algılamayı basitleştirmek için yama sürümünün atlandığı Major.Minor şeması da popülerdir.
Takvim sürümlemesi (CalVer), sürüm numarası olarak yayın tarihini kullanır — örneğin, 25.06 (yıl ve ay). Bu yaklaşım, anlam biliminin anlamlı olmadığı sık yayın yapan uygulamalar için uygundur.
Anlamsal sürümleme, geriye dönük uyumluluğun önemli olduğu genel API'ye sahip uygulamalar için uygundur. Kullanıcılar ve entegratörler, güncellemelerle hangi değişiklikleri bekleyeceklerini anlarlar.
Takvim sürümlemesi, değişikliklerin kapsamından çok yayının tazeliğinin önemli olduğu uygulamalar için seçilir. Örneğin, haber toplayıcılar veya hava durumu uygulamaları.
Hibrit şema her iki yaklaşımı birleştirir: Major.Minor.RC, burada RC belirli bir yayın adayı için derleme numarasıdır. Bu şema, aktif beta testi sırasında kullanışlıdır.
Aşağıdaki kod örnekleri, Android ve iOS'ta Version Name'in nasıl ayarlanacağını gösterir. Android için Gradle kullanılır, iOS için — agvtool ile Xcode Build Settings.
Android'de sürüm, app/build.gradle dosyasında defaultConfig bloğu içinde ayarlanır. versionName parametresi bir dize değeri kabul eder.
android {
defaultConfig {
versionCode 3
versionName "2.1.0"
}
}
versionName ayrıca harici bir dosyadan okunabilir veya Gradle Script kullanılarak dinamik olarak oluşturulabilir.
Dinamik sürüm, CI/CD sisteminin ortam değişkenlerinden oluşturulur. Bu, her derlemenin doğru sürüm numarasını almasını sağlar.
def getVersionName = {
return System.getenv("VERSION_NAME") ?:
"2.1.0"
}
android {
defaultConfig {
versionName getVersionName()
}
}
Bu yaklaşım, sürümlemeyi otomatikleştirir ve derleme ile depo etiketi arasındaki uyumsuzluk riskini ortadan kaldırır.
iOS'ta sürüm, Xcode aracılığıyla veya agvtool kullanılarak komut satırından ayarlanabilir.
# Pazarlama sürümünü ayarlama
xcrun agvtool new-marketing-version 2.1.0
# Geçerli sürümü okuma
xcrun agvtool what-marketing-version
agvtool, Info.plist'i otomatik olarak günceller ve Xcode projesindeki tüm hedefler arasında sürümü senkronize eder.
Sıkça Sorulan Sorular
Version Name, uygulama mağazasında görüntülenen kullanıcı odaklı bir sürüm dizesidir. Build Number, her derlemeyi benzersiz şekilde tanımlayan dahili bir sayısal derleme tanımlayıcısıdır ve mağazalar tarafından sürümün yeniliğini belirlemek için kullanılır.
Android'de versionName, harfler ve kısa çizgiler dahil herhangi bir karakter içerebilir. iOS'ta CFBundleShortVersionString, noktalarla ayrılmış sayılardan oluşmalıdır, ancak ön yayın sürümleri için harf eklerine izin verilir.
CI/CD araçlarını kullanın — GitHub Actions, GitLab CI veya Jenkins. Derleme betiği, geçerli sürümü bir dosyadan okur, gerekli bileşeni artırır ve sürümü derlemeden önce yeni değeri yazar.
Mağaza, Build Number artmışsa yeni derlemeyi kabul eder. Ancak kullanıcılar sürümde değişiklik görmez, bu da karışıklığa neden olabilir. Yeni işlevselliğin her yayınında Version Name'in değiştirilmesi önerilir.
Major.Minor.Patch biçimi çoğu proje için en uygun seçimdir. Kullanıcılar ve geliştiriciler için anlaşılırdır, SemVer standardına uygundur ve tüm uygulama mağazaları tarafından desteklenir.
Ö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