Version Code — adalah bilangan bulat positif dalam pengembangan Android yang secara unik mengidentifikasi setiap build baru aplikasi. Google Play dan sistem Android menggunakan Version Code untuk menentukan kebutuhan pembaruan: jika kode build baru lebih besar dari yang terinstal, proses pembaruan dimulai. Menurut Android Developer Documentation, Version Code tidak ditampilkan kepada pengguna dan hanya berfungsi untuk penomoran versi internal.
Poin Utama
Version Code — adalah bilangan bulat bertipe Integer yang diberikan kepada setiap build aplikasi Android. Berbeda dengan Version Name, Version Code tidak ditampilkan kepada pengguna dan hanya digunakan oleh sistem operasi dan Google Play untuk membandingkan versi saat menginstal pembaruan.
Version Code harus berupa bilangan bulat positif dalam rentang 1 hingga 2100000000. Setiap build berikutnya harus memiliki Version Code yang benar-benar lebih besar dari sebelumnya. Jika pengembang telah merilis build dengan Version Code 5, publikasi berikutnya dapat menggunakan 6, 7, atau angka berapa pun yang lebih besar dari 5, tetapi bukan 4 dan bukan 5 lagi.
Google memperkenalkan pemisahan antara Version Code dan Version Name bersamaan dengan rilis Android SDK pada tahun 2007. Version Code dirancang sebagai pengidentifikasi mesin untuk perbandingan versi otomatis, sementara Version Name — sebagai label yang dapat dibaca manusia. Pemisahan ini memungkinkan pengembang untuk memberi nama versi sesuka hati, sambil mempertahankan urutan pembaruan yang ketat melalui kode numerik.
| Parameter | Version Code | Version Name |
|---|---|---|
| Tipe data | Integer | String |
| Ditampilkan ke pengguna | Tidak | Ya |
| Perbandingan versi | Perbandingan numerik | Tidak digunakan |
| Format | 1, 2, 3, 10, 100 | 1.0.0, 2.3.1-rc |
| Rentang | 1 — 2100000000 | Tanpa batasan |
Mekanisme perbandingan Version Code tertanam dalam sistem operasi Android dan toko Google Play. Pada setiap publikasi, Google Play memeriksa apakah Version Code build baru lebih besar dari kode versi yang terinstal. Jika kondisi tidak terpenuhi, publikasi ditolak dengan kesalahan.
Ketika perangkat menghubungi Google Play untuk memeriksa pembaruan, server membandingkan Version Code aplikasi yang terinstal dengan yang maksimum tersedia di toko. Jika kode di server lebih besar — pengunduhan dan instalasi pembaruan dimulai. Pengguna melihat Version Name yang ditentukan oleh pengembang, tetapi keputusan tentang pembaruan diambil berdasarkan Version Code.
Pengembang menerapkan berbagai strategi untuk menaikkan Version Code. Yang paling sederhana adalah peningkatan sebesar 1 pada setiap build. Untuk pipeline CI/CD sering digunakan timestamp atau nomor build: 2026070301 (tahun-bulan-hari-nomor). Penting agar kode meningkat secara monoton dan tidak berulang di antara berbagai build dan track Google Play.
Version Code dan Version Name — dua bidang independen di build.gradle yang menjalankan fungsi berbeda. Version Code adalah pengidentifikasi internal untuk sistem, Version Name adalah label pemasaran untuk pengguna. Keduanya dapat berubah secara independen satu sama lain.
Version Name — adalah string yang ditampilkan di pengaturan aplikasi, di Google Play, dan di dialog pembaruan. Pengembang dapat menentukan format apa pun: 1.0.0, 2.3.1-beta, 3.0-rc1. Untuk membandingkan versi teks, Version Name tidak digunakan — Google Play selalu mengandalkan Version Code.
Situasi mungkin terjadi ketika Version Code meningkat, tetapi Version Name tetap tidak berubah. Misalnya, jika pengembang memperbaiki bug kritis dalam build hotfix tanpa mengubah fungsionalitas. Version Name tetap 2.0.0, dan Version Code berubah dari 5 menjadi 6. Google Play akan menangani pembaruan semacam itu dengan benar.
// Contoh: version name tidak berubah, code meningkat
android {
defaultConfig {
versionCode 6 // Adalah 5 — hotfix tanpa fitur baru
versionName "2.0.0" // Tidak berubah
}
}
// Pemeriksaan versi di runtime
val code = BuildConfig.VERSION_CODE
val name = BuildConfig.VERSION_NAME
println("Kode: $code, Nama: $name")
Konfigurasi Version Code dilakukan dalam file build.gradle modul aplikasi. Bidang versionCode menerima bilangan bulat dan berada di blok defaultConfig. Untuk build flavour yang berbeda, nilai khusus dapat ditetapkan melalui bidang versionCode dalam konfigurasi produk.
// 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 memungkinkan penggunaan Version Code yang berbeda untuk konfigurasi yang berbeda: versi demo, versi terpisah untuk tablet. Jika flavors digunakan dalam proyek, Version Code akhir terdiri dari angka dasar dan kenaikan khusus flavour. Google Play melacak setiap kombinasi secara independen.
Dalam pipeline CI/CD (GitHub Actions, GitLab CI, Jenkins) Version Code sering dihasilkan secara otomatis berdasarkan nomor build atau tanggal. Ini menghilangkan kesalahan manusia saat pembaruan manual. Skrip membaca Version Code saat ini dari build.gradle, menaikkannya, dan menulisnya kembali sebelum build dimulai.
// Kenaikan otomatis Version Code
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 memiliki aturan ketat untuk Version Code saat mempublikasikan dan memperbarui aplikasi. Pelanggaran aturan ini menyebabkan penolakan build atau ketidakmampuan untuk merilis pembaruan. Pengembang harus memahami batasan dan strategi manajemen kode di semua tahap siklus hidup.
Google Play tidak mengizinkan mengunggah APK atau AAB yang Version Code-nya lebih kecil atau sama dengan yang telah dipublikasikan saat ini. Aturan ini berlaku untuk setiap track (production, beta, alpha) secara independen. Jika di production telah diunggah build dengan Version Code 10, dan di alpha — dengan kode 5, track alpha dapat diperbarui ke 6, 7, 8, atau 9, tetapi production tetap di 10.
Saat mempromosikan build dari alpha ke beta, lalu ke production, Version Code harus meningkat di setiap tahap. Jika versi alpha memiliki kode 10, beta dapat menggunakan 11, dan production — 12. Tidak dapat merilis build dengan kode 10 ke production jika alpha sudah menggunakan 10, meskipun production belum melihatnya.
Kesalahan paling umum — kecocokan Version Code di berbagai build yang diunggah ke satu track. Google Play mengembalikan kesalahan APK_VERSION_CODE_ALREADY_EXISTS. Kesalahan lain — melebihi nilai maksimum 2100000000, yang menyebabkan kesalahan kompilasi. Untuk menghindari konflik, gunakan pembuatan kode otomatis di sistem CI yang terhubung dengan nomor build atau tanggal build.
Pengembang juga sering melakukan kesalahan dengan tidak menaikkan Version Code saat build hotfix untuk track alternatif. Jika production memiliki kode 15, dan track alpha tetap di 14, saat mempromosikan alpha ke production Google Play akan menolak build karena kodenya lebih kecil dari production saat ini. Pantau monotonisitas kode di semua track secara bersamaan — untuk ini, gunakan satu file version.properties dari mana semua track membaca nilai saat ini.
Pertanyaan Umum
Tidak, Google Play tidak mengizinkan mengunggah build dengan Version Code lebih kecil atau sama dengan yang telah dipublikasikan saat ini di track yang sama. Sistem memeriksa kode saat mengunggah dan mengembalikan kesalahan jika aturan kenaikan monoton dilanggar. Untuk track alfa dan beta, prinsip yang sama berlaku secara independen.
Untuk publikasi pertama, Anda dapat menentukan Version Code 1. Google Play tidak menetapkan ambang minimum selain bilangan bulat positif. Disarankan untuk memulai dari 1 dan menaikkannya sebesar 1 pada setiap build berikutnya. Jika Anda menggunakan format timestamp, build pertama bisa 20260701.
Version Code — adalah pengidentifikasi mesin internal yang digunakan oleh sistem untuk perbandingan. Version Name — adalah label pengguna yang ditampilkan di Google Play dan di perangkat. Pengguna melihat Version Name (misalnya, 2.0.0), dan Google Play menggunakan Version Code untuk menentukan kebutuhan pembaruan.
Nilai maksimum Version Code adalah 2100000000 (Integer.MAX_VALUE). Jika terlampaui, kompiler akan mengembalikan kesalahan karena bidang tersebut bertipe int. Untuk proyek dengan jumlah build yang besar (CI/CD dengan rilis harian) disarankan menggunakan format timestamp atau mereset penghitung dengan dimulainya versi major.
Version Code tidak digunakan secara langsung untuk pengujian A/B, tetapi secara tidak langsung memengaruhinya. Google Play memungkinkan konfigurasi peluncuran bertahap (staged rollout) berdasarkan persentase pengguna untuk build tertentu. Version Code mengidentifikasi build, dan pengujian A/B dikonfigurasi melalui Firebase Remote Config atau layanan serupa.
Kesimpulan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga