Version Code: nedir, sayısal tanımlayıcı ve güncellemeler

Yazar: IT Sectr Yayınlanma: 2026-04-17 Okuma süresi: 8 dk

Version Code, Android geliştirmede her yeni uygulama derlemesini benzersiz şekilde tanımlayan pozitif bir tam sayıdır. Google Play ve Android sistemi, bir güncellemenin gerekli olup olmadığını belirlemek için Version Code'u kullanır: yeni derlemenin kodu yüklü olandan büyükse güncelleme süreci başlar. Android Geliştirici Dokümantasyonu'na göre, Version Code kullanıcıya gösterilmez ve yalnızca dahili sürüm numaralandırması için hizmet eder.

Önemli Noktalar

  • Version Code — Google Play için Android uygulama derlemesinin sayısal tanımlayıcısı
  • Artırma — her yeni derleme bir öncekinden daha büyük Version Code'a sahip olmalıdır
  • Version Name — kullanıcı için metin sürümü, güncelleme mekanizmasını etkilemez
  • Yapılandırma build.gradle'da versionCode alanı aracılığıyla yapılır
  • Sınır — Version Code maksimum değeri 2100000000'dir

Android'de Version Code Nedir

Version Code, Integer türünde bir tam sayıdır ve bir Android uygulamasının her derlemesine atanır. Version Name'in aksine, Version Code kullanıcıya gösterilmez ve yalnızca işletim sistemi ve Google Play tarafından güncellemeleri yüklerken sürümleri karşılaştırmak için kullanılır.

Version Code Biçimi

Version Code, 1 ila 2100000000 aralığında pozitif bir tam sayı olmalıdır. Sonraki her derleme, bir öncekinden kesinlikle daha büyük bir Version Code'a sahip olmalıdır. Bir geliştirici Version Code 5 ile bir derleme yayınladıysa, sonraki yayın 6, 7 veya 5'ten büyük herhangi bir sayıyı kullanabilir, ancak 4 veya tekrar 5'i kullanamaz.

Köken Tarihi

Google, 2007'de Android SDK'nın piyasaya sürülmesiyle Version Code ve Version Name ayrımını tanıttı. Version Code, otomatik sürüm karşılaştırması için bir makine tanımlayıcısı olarak tasarlanırken, Version Name insan tarafından okunabilir bir etiket olarak tasarlandı. Bu ayrım, geliştiricinin sürümü dilediği gibi adlandırmasına olanak tanırken, sayısal kod aracılığıyla katı bir güncelleme sırası korumasını sağlar.

ParametreVersion CodeVersion Name
Veri türüIntegerString
Kullanıcıya gösterimHayırEvet
Sürüm karşılaştırmaSayısal karşılaştırmaKullanılmaz
Biçim1, 2, 3, 10, 1001.0.0, 2.3.1-rc
Aralık1 — 2100000000Sınır yok

Version Code ile Sürüm Yönetimi Nasıl Çalışır

Version Code'un karşılaştırma mekanizması, Android işletim sistemine ve Google Play Store'a yerleşiktir. Her yayında, Google Play yeni derlemenin Version Code'unun yüklü sürümün kodundan büyük olup olmadığını kontrol eder. Koşul karşılanmazsa, yayın bir hata ile reddedilir.

Güncelleme Kontrol Süreci

Bir cihaz güncellemeleri kontrol etmek için Google Play ile iletişime geçtiğinde, sunucu yüklü uygulamanın Version Code'unu mağazada bulunan maksimum değerle karşılaştırır. Sunucudaki kod daha büyükse, güncellemenin indirilmesi ve yüklenmesi başlar. Kullanıcı geliştirici tarafından belirtilen Version Name'i görür, ancak güncelleme kararı Version Code'a göre verilir.

Version Code Artırma

Geliştiriciler Version Code'u artırmak için farklı stratejiler uygular. En basiti her derlemede 1 artırmaktır. CI/CD boru hatları için genellikle zaman damgası veya derleme numarası kullanılır: 2026070301 (yıl-ay-gün-sayı). Kodun monoton bir şekilde artması ve farklı derlemeler ile Google Play kanalları arasında tekrarlanmaması önemlidir.

  • Monoton artırma — sürüm dalındaki her commit'te 1 artırma
  • Zaman damgası biçimi — günlük derlemeler için 20260703, günde birden çok derleme için 2026070301
  • Sayılarla SemVer — sürüm 1.1.0 için 100010000 (major 1, minor 1, patch 0)
  • Derleme numarası — CI sisteminden (Jenkins, GitHub Actions) BUILD_NUMBER kullanımı

Version Code ve Version Name Arasındaki Farklar

Version Code ve Version Name, build.gradle'da farklı işlevleri yerine getiren iki bağımsız alandır. Version Code sistem için dahili bir tanımlayıcıdır, Version Name kullanıcı için bir pazarlama etiketidir. Birbirlerinden bağımsız olarak değişebilirler.

Kullanıcı için Version Name

Version Name, uygulama ayarlarında, Google Play'de ve güncelleme iletişim kutularında görüntülenen bir dizedir. Geliştirici herhangi bir biçim belirtebilir: 1.0.0, 2.3.1-beta, 3.0-rc1. Version Name, metin sürümlerini karşılaştırmak için kullanılmaz — Google Play her zaman Version Code'a dayanır.

Ayrışma Senaryoları

Version Code'un artarken Version Name'in aynı kaldığı bir durum mümkündür. Örneğin, bir geliştirici işlevselliği değiştirmeden bir hata düzeltme derlemesinde kritik bir hatayı düzeltirse. Version Name 2.0.0 olarak kalırken, Version Code 5'ten 6'ya değişir. Google Play bu tür bir güncellemeyi doğru şekilde işleyecektir.

groovy
// Örnek: version name değişmez, kod artar
android {
    defaultConfig {
        versionCode 6  // 5'ti — yeni özellik olmadan hata düzeltme
        versionName "2.0.0"  // Değişmedi
    }
}

// Çalışma zamanında sürüm kontrolü
val code = BuildConfig.VERSION_CODE
val name = BuildConfig.VERSION_NAME
println("Code: $code, Name: $name")

build.gradle'da Version Code Yapılandırması

Version Code yapılandırması uygulama modülünün build.gradle dosyasında yapılır. versionCode alanı bir tam sayı kabul eder ve defaultConfig bloğunun bir parçasıdır. Farklı flavor derlemeleri için, ürün yapılandırmasında versionCode alanı aracılığıyla özel değerler ayarlanabilir.

Temel Yapılandırma

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, farklı yapılandırmalar için farklı Version Code'ların kullanılmasına olanak tanır: demo sürümü, tabletler için ayrı sürüm. Projede flavor kullanılıyorsa, nihai Version Code temel sayı ve flavore özgü artıştan oluşur. Google Play her kombinasyonu bağımsız olarak izler.

CI ile Artırma Otomasyonu

CI/CD boru hatlarında (GitHub Actions, GitLab CI, Jenkins), Version Code genellikle derleme numarasına veya tarihe göre otomatik olarak oluşturulur. Bu, manuel güncellemeler sırasında insan hatasını ortadan kaldırır. Betik, build.gradle'dan geçerli Version Code'u okur, artırır ve derlemeyi başlatmadan önce geri yazar.

kotlin
// Version Code'un otomatik artırımı
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'de Yayınlama için Version Code Özellikleri

Google Play'in uygulama yayınlama ve güncelleme sırasında Version Code için katı kuralları vardır. Bu kuralların ihlali, derlemenin reddedilmesine veya bir güncelleme yayınlayamama durumuna yol açar. Geliştiricinin, yaşam döngüsünün tüm aşamalarındaki sınırlamaları ve kod yönetimi stratejilerini anlaması gerekir.

Monoton Artırma Kuralı

Google Play, Version Code'u şu anda yayınlanmış olandan küçük veya eşit olan bir APK veya AAB'nin yüklenmesine izin vermez. Bu kural her kanal (production, beta, alpha) için bağımsız olarak geçerlidir. Production'a Version Code 10 ile bir derleme yüklendiyse ve alpha'da kod 5 olan bir derleme varsa, alpha kanalı 6, 7, 8 veya 9'a güncellenebilir, ancak production 10'da kalır.

Kanallar Arası Geçiş

Bir derlemeyi alpha'dan beta'ya ve ardından production'a yükseltirken, Version Code her aşamada artmalıdır. Alpha sürümünde kod 10 ise, beta 11 ve production 12 kullanabilir. Alpha zaten 10'u kullanıyorsa, production henüz görmemiş olsa bile, kod 10 olan bir derlemeyi production'a dağıtamazsınız.

  • Monoton artırma — bir kanaldaki her derleme, aynı kanaldaki bir öncekinden daha büyük Version Code'a sahiptir
  • Kanallar arası farkındalık — kanallar arasında yükseltme yaparken, Version Code sıralı olarak artar
  • Dahili test — dahili test kanalı aynı monotonluk kurallarını kullanır
  • Birden çok APK — eski yayın biçimi her APK için benzersiz bir Version Code gerektiriyordu

Version Code Belirtme Hataları

En yaygın hata, aynı kanala yüklenen farklı derlemelerde Version Code'un eşleşmesidir. Google Play, APK_VERSION_CODE_ALREADY_EXISTS hatasını döndürür. Diğer bir hata, maksimum değer olan 2100000000'un aşılmasıdır ve bu, derleme hatasına neden olur. Çakışmaları önlemek için, derleme numarasına veya derleme tarihine bağlı otomatik kod oluşturmayı CI sisteminizde kullanın.

Geliştiriciler ayrıca alternatif bir kanal için hata düzeltme sürümü oluştururken Version Code'u artırmama hatasını sıkça yaparlar. Production'da kod 15 ise ve alpha kanalı 14'te kaldıysa, alpha'yı production'a yükseltirken Google Play, kodu mevcut production kodundan küçük olduğu için derlemeyi reddedecektir. Kodun monotonluğunu tüm kanallarda aynı anda izleyin — bunun için tüm kanalların geçerli değeri okuduğu tek bir version.properties dosyası kullanmak uygundur.

Sıkça Sorulan Sorular

Mevcut olandan daha düşük bir Version Code ile güncelleme yayınlayabilir miyim?

Hayır, Google Play aynı kanalda mevcut yayınlanmış olandan daha küçük veya eşit Version Code'a sahip bir derlemenin yüklenmesine izin vermez. Sistem, yükleme sırasında kodu kontrol eder ve monoton artırma kuralı ihlal edilirse bir hata döndürür. Alfa ve beta kanalları için de aynı prensip bağımsız olarak geçerlidir.

İlk uygulama yayını için hangi Version Code'u belirtmeliyim?

İlk yayın için Version Code 1 belirtebilirsiniz. Google Play, pozitif bir tam sayı dışında minimum bir eşik belirlemez. 1 ile başlamanız ve sonraki her derlemede 1 artırmanız önerilir. Zaman damgası biçimi kullanıyorsanız, ilk derleme 20260701 olabilir.

Google Play'de Version Code, Version Name ile nasıl ilişkilidir?

Version Code, sistem tarafından karşılaştırma için kullanılan dahili bir makine tanımlayıcısıdır. Version Name, Google Play'de ve cihazda görüntülenen kullanıcı odaklı bir etikettir. Kullanıcı Version Name'i (örneğin, 2.0.0) görürken, Google Play bir güncellemenin gerekli olup olmadığını belirlemek için Version Code'u kullanır.

Version Code maksimum değeri aşılırsa ne olur?

Version Code maksimum değeri 2100000000'dir (Integer.MAX_VALUE). Aşılırsa, alan int türünde olduğu için derleyici hata döndürür. Çok sayıda derlemesi olan projeler için (günlük sürümlerle CI/CD), zaman damgası biçimi kullanmanız veya ana sürümün başında sayacı sıfırlamanız önerilir.

Version Code A/B testi için kullanılabilir mi?

Version Code doğrudan A/B testi için kullanılmaz, ancak dolaylı olarak etkiler. Google Play, belirli bir derleme için kullanıcı yüzdesine göre aşamalı dağıtım (staged rollout) yapılandırmasına izin verir. Version Code derlemeyi tanımlarken, A/B testleri Firebase Remote Config veya benzer hizmetler aracılığıyla yapılandırılır.

Özet

  • Version Code — bir Android uygulamasının her derlemesini benzersiz şekilde tanımlayan tam sayı
  • Google Play bir uygulama güncellemesinin gerekli olup olmadığını belirlemek için Version Code'u kullanır
  • Artırma kuralı — her yeni derleme, aynı kanaldaki bir öncekinden kesinlikle daha büyük bir koda sahip olmalıdır
  • Değer aralığı — 1'den 2100000000'a kadar (Integer.MAX_VALUE)
  • Version Name — kullanıcı odaklı metin etiketi, güncelleme mekanizmasını etkilemez
  • Otomasyon — CI/CD sistemleri, derleme numarasından veya zaman damgasından Version Code oluşturabilir
  • Öneri — yayınlamadan önce bir artırma stratejisi seçin ve tüm yaşam döngüsü boyunca buna bağlı kalın

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.

Projeyi tartış

Ayrıca okuyun