Version Code: τι είναι, αριθμητικό αναγνωριστικό και ενημερώσεις

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-04-17 Χρόνος ανάγνωσης: 8 λεπ

Version Code — είναι ένας θετικός ακέραιος αριθμός στην ανάπτυξη Android που προσδιορίζει μοναδικά κάθε νέο build της εφαρμογής. Το Google Play και το σύστημα Android χρησιμοποιούν το Version Code για να καθορίσουν την ανάγκη ενημέρωσης: εάν ο κώδικας του νέου build είναι μεγαλύτερος από τον εγκατεστημένο, εκκινά η διαδικασία ενημέρωσης. Σύμφωνα με την Android Developer Documentation, το Version Code δεν εμφανίζεται στον χρήστη και χρησιμεύει αποκλειστικά για εσωτερική αρίθμηση εκδόσεων.

Βασικά Σημεία

  • Version Code — αριθμητικό αναγνωριστικό build εφαρμογής Android για το Google Play
  • Αύξηση — κάθε νέο build πρέπει να έχει Version Code μεγαλύτερο από το προηγούμενο
  • Version Name — έκδοση κειμένου για τον χρήστη, δεν επηρεάζει τον μηχανισμό ενημέρωσης
  • Ρύθμιση γίνεται στο build.gradle μέσω του πεδίου versionCode
  • Περιορισμός — η μέγιστη τιμή του Version Code είναι 2100000000

Τι είναι το Version Code στο Android

Version Code — είναι ένας ακέραιος αριθμός τύπου Integer που αντιστοιχίζεται σε κάθε build της εφαρμογής Android. Σε αντίθεση με το Version Name, το Version Code δεν εμφανίζεται στον χρήστη και χρησιμοποιείται αποκλειστικά από το λειτουργικό σύστημα και το Google Play για σύγκριση εκδόσεων κατά την εγκατάσταση ενημερώσεων.

Μορφή Version Code

Version Code πρέπει να είναι ένας θετικός ακέραιος αριθμός στο εύρος από 1 έως 2100000000. Κάθε επόμενο build πρέπει να έχει Version Code αυστηρά μεγαλύτερο από το προηγούμενο. Εάν ο προγραμματιστής έχει δημοσιεύσει build με Version Code 5, η επόμενη δημοσίευση μπορεί να χρησιμοποιήσει 6, 7 ή οποιονδήποτε αριθμό μεγαλύτερο από 5, αλλά όχι 4 και όχι 5 ξανά.

Ιστορία εμφάνισης

Η Google εισήγαγε τον διαχωρισμό σε Version Code και Version Name με την κυκλοφορία του Android SDK το 2007. Version Code σχεδιάστηκε ως μηχανικό αναγνωριστικό για αυτόματη σύγκριση εκδόσεων, ενώ το Version Name — ως μια ετικέτα αναγνώσιμη από τον άνθρωπο. Αυτός ο διαχωρισμός επιτρέπει στον προγραμματιστή να ονομάζει την έκδοση όπως επιθυμεί, διατηρώντας ταυτόχρονα μια αυστηρή σειρά ενημερώσεων μέσω του αριθμητικού κώδικα.

ΠαράμετροςVersion CodeVersion Name
Τύπος δεδομένωνIntegerString
Εμφάνιση στον χρήστηΌχιΝαι
Σύγκριση εκδόσεωνΑριθμητική σύγκρισηΔεν χρησιμοποιείται
Μορφή1, 2, 3, 10, 1001.0.0, 2.3.1-rc
Εύρος1 — 2100000000Χωρίς περιορισμούς

Πώς λειτουργεί η έκδοση μέσω Version Code

Ο μηχανισμός σύγκρισης Version Code είναι ενσωματωμένος στο λειτουργικό σύστημα Android και στο κατάστημα Google Play. Σε κάθε δημοσίευση, το Google Play ελέγχει αν το Version Code του νέου build είναι μεγαλύτερο από τον κώδικα της εγκατεστημένης έκδοσης. Εάν η συνθήκη δεν ικανοποιείται, η δημοσίευση απορρίπτεται με σφάλμα.

Διαδικασία ελέγχου ενημέρωσης

Όταν η συσκευή επικοινωνείται με το Google Play για να ελέγξει για ενημερώσεις, ο διακομιστής συγκρίνει το Version Code της εγκατεστημένης εφαρμογής με το μέγιστο διαθέσιμο στο κατάστημα. Εάν ο κώδικας στον διακομιστή είναι μεγαλύτερος — ξεκινά η λήψη και εγκατάσταση της ενημέρωσης. Ο χρήστης βλέπει το Version Name που καθορίστηκε από τον προγραμματιστή, αλλά η απόφαση για την ενημέρωση λαμβάνεται βάσει του Version Code.

Αύξηση Version Code

Οι προγραμματιστές εφαρμόζουν διαφορετικές στρατηγικές αύξησης του Version Code. Η απλούστερη είναι η αύξηση κατά 1 σε κάθε build. Για τα pipeline CI/CD χρησιμοποιείται συχνά timestamp ή αριθμός build: 2026070301 (έτος-μήνας-ημέρα-αριθμός). Είναι σημαντικό ο κώδικας να αυξάνεται μονότονα και να μην επαναλαμβάνεται μεταξύ διαφορετικών build και track του Google Play.

  • Μονότονη αύξηση — αύξηση κατά 1 σε κάθε commit στον κλάδο release
  • Μορφή timestamp — 20260703 για καθημερινά build, 2026070301 για πολλά την ημέρα
  • SemVer σε αριθμούς — 100010000 για την έκδοση 1.1.0 (major 1, minor 1, patch 0)
  • Αριθμός build — χρήση του BUILD_NUMBER από το σύστημα CI (Jenkins, GitHub Actions)

Διαφορές μεταξύ Version Code και Version Name

Version Code και Version Name — δύο ανεξάρτητα πεδία στο build.gradle που εκτελούν διαφορετικές λειτουργίες. Το Version Code είναι εσωτερικό αναγνωριστικό για το σύστημα, το Version Name είναι μια ετικέτα μάρκετινγκ για τον χρήστη. Μπορούν να αλλάζονται ανεξάρτητα το ένα από το άλλο.

Version Name για τον χρήστη

Version Name — είναι μια σειρά χαρακτήρων που εμφανίζεται στις ρυθμίσεις της εφαρμογής, στο Google Play και στα παράθυρα ενημέρωσης. Ο προγραμματιστής μπορεί να καθορίσει οποιαδήποτε μορφή: 1.0.0, 2.3.1-beta, 3.0-rc1. Για σύγκριση εκδόσεων κειμένου, το Version Name δεν χρησιμοποιείται — το Google Play βάζεται πάντα στο Version Code.

Σενάρια απόκλισης

Είναι δυνατή η κατάσταση όταν το Version Code αυξάνεται, αλλά το Version Name παραμένει αμετάβλητο. Για παράδειγμα, εάν ο προγραμματιστής διορθώνει ένα κρίσιμο σφάλμα σε ένα hotfix build χωρίς να αλλάξει τη λειτουργικότητα. Το Version Name παραμένει 2.0.0, και το Version Code αλλάζει από 5 σε 6. Το Google Play θα χειριστεί σωστά μια τέτοια ενημέρωση.

groovy
// Παράδειγμα: version name δεν αλλάζει, code αυξάνεται
android {
    defaultConfig {
        versionCode 6  // Ήταν 5 — hotfix χωρίς νέες λειτουργίες
        versionName "2.0.0"  // Δεν άλλαξε
    }
}

// Έλεγχος εκδόσεων σε runtime
val code = BuildConfig.VERSION_CODE
val name = BuildConfig.VERSION_NAME
println("Κώδικας: $code, Όνομα: $name")

Ρύθμιση Version Code στο build.gradle

Η ρύθμιση Version Code γίνεται στο αρχείο build.gradle του module της εφαρμογής. Το πεδίο versionCode δέχεται έναν ακέραιο αριθμό και βρίσκεται στο μπλοκ defaultConfig. Για διαφορετικά flavour build, μπορούν να οριστούν δικές τιμές μέσω του πεδίου versionCode στη ρύθμιση προϊόντος.

Βασική ρύθμιση

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 επιτρέπουν τη χρήση διαφορετικών Version Code για διαφορετικές ρυθμίσεις: δεικτική έκδοση, ξεχωριστή έκδοση για τάπλες. Εάν χρησιμοποιούνται flavors στο έργο, το τελικό Version Code αποτελείται από τον βασικό αριθμό και την προσαύξηση που είναι ειδική για το flavour. Το Google Play παρακολουθεί κάθε συνδυασμό ανεξάρτητα.

Αυτοματοποίηση αύξησης μέσω CI

Στα pipeline CI/CD (GitHub Actions, GitLab CI, Jenkins) το Version Code συχνά δημιουργείται αυτόματα βάσει του αριθμού build ή της ημερομηνίας. Αυτό εξαλείφει τα ανθρώπινα σφάλματα κατά τη μείουνΰ ενημέρωση. Το σκριπτ διαβάζει το τρέχον Version Code από το build.gradle, το αυξάνει και το εγγράφει πίσω πριν την έναρξη του build.

kotlin
// Αυτόματη αύξηση του 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
    }
}

Κανόνες Version Code για δημοσίευση στο Google Play

Google Play έχει αυστηρούς κανόνες για το Version Code κατά τη δημοσίευση και ενημέρωση εφαρμογών. Η παραβίαση αυτών των κανόνων οδηγεί σε απόρριψη του build ή σε αδυναμία εκδοσης ενημέρωσης. Ο προγραμματιστής πρέπει να κατανοεί τους περιορισμούς και τις στρατηγικές διαχείρισης κώδικα σε όλα τα στάδια του κύκλου ζωής.

Κανόνας μονότονης αύξησης

Google Play δεν επιτρέπει το ανέβασμα APK ή AAB με Version Code μικρότερο ή ίσο με το τρέχον δημοσιευμένο. Αυτός ο κανόνας ισχύει για κάθε track (production, beta, alpha) ανεξάρτητα. Εάν στο production έχει ανεβαστεί build με Version Code 10, και στο alpha — με κώδικα 5, το alpha track μπορεί να ενημερωθεί σε 6, 7, 8 ή 9, αλλά το production παραμένει σε 10.

Μετανάστευση μεταξύ track

Κατά την προώθηση του build από alpha σε beta, και στη συνέχεια σε production, το Version Code πρέπει να αυξάνεται σε κάθε στάδιο. Εάν η έκδοση alpha έχει κώδικα 10, η beta μπορεί να χρησιμοποιήσει 11, και το production — 12. Δεν μπορείτε να εκκινήσετε σε παραγωγή build με κώδικα 10 εάν το alpha χρησιμοποιεί ήδη 10, ακόμη και αν το production δεν το έχει δεί ακόμη.

  • Monotonous increment — κάθε build σε ένα track έχει Version Code μεγαλύτερο από το προηγούμενο στο ίδιο track
  • Cross-track awareness — κατά την προώθηση μεταξύ track, το Version Code αυξάνεται διαδοχικά
  • Internal testing — το track εσωτερικών δοκιμών χρησιμοποιεί τους ίδιους κανόνες μονοτονίας
  • Multiple APKs — η παλιά μορφή δημοσίευσης απαιτούσε μοναδικό Version Code για κάθε APK

Σφάλματα καθορισμού Version Code

Το συχνότερο σφάλμα — η ταύτιση Version Code σε διαφορετικά build που ανεβαίνονται σε ένα track. Το Google Play επιστρέφει το σφάλμα APK_VERSION_CODE_ALREADY_EXISTS. Ένα αλλο σφάλμα — υπέρβαση της μέγιστης τιμής 2100000000, που οδηγεί σε σφάλμα μεταγλώττισης. Για να αποφύγετε συγκρούσεις, χρησιμοποιήστε αυτόματη δημιουργία κώδικα σε ένα σύστημα CI με σύνδεση με τον αριθμό build ή την ημερομηνία build.

Οι προγραμματιστές συχνά κάνουν το λάθος να μην αυξάνουν το Version Code σε build hotfix για ένα εναλλακτικό track. Εάν το production έχει κώδικα 15, και το alpha track έχει μείνει σε 14, κατά την προώθηση του alpha σε production, το Google Play θα απορρίψει το build επειδή ο κώδικάς του είναι μικρότερος από το τρέχον production. Παρακολουθήστε τη μονοτονία του κώδικα σε όλα τα track ταυτόχρονα — για αυτό, χρησιμοποιήστε ένα ενιαίο αρχείο version.properties από το οποίο όλα τα track διαβάζουν την τρέχουσα τιμή.

Συχνές Ερωτήσεις

Μπορώ να εκδώσω ενημέρωση με Version Code μικρότερο από το τρέχον;

Όχι, το Google Play δεν επιτρέπει το ανέβασμα build με Version Code μικρότερο ή ίσο με το τρέχον δημοσιευμένο στο ίδιο track. Το σύστημα ελέγχει τον κώδικα κατά το ανέβασμα και επιστρέφει σφάλμα εάν ο κανόνας μονότονης αύξησης έχει παραβιαστεί. Για τα track άλφα και βήτα ισχύει η ίδια αρχή ανεξάρτητα.

Ποιο Version Code να καθορίσω για την πρώτη δημοσίευση της εφαρμογής;

Για την πρώτη δημοσίευση μπορείτε να καθορίσετε Version Code 1. Το Google Play δεν ορίζει καμία ελάχιστη τιμή, εκτός από έναν θετικό ακέραιο αριθμό. Συνιστάται να ξεκινήσετε από 1 και να αυξάνετε κατά 1 σε κάθε επόμενο build. Εάν χρησιμοποιείτε μορφή timestamp, το πρώτο build μπορεί να είναι 20260701.

Πώς σχετίζεται το Version Code με το Version Name στο Google Play;

Version Code — είναι ένα εσωτερικό μηχανικό αναγνωριστικό που χρησιμοποιείται από το σύστημα για σύγκριση. Version Name — είναι η ετικέτα χρήστη που εμφανίζεται στο Google Play και στη συσκευή. Ο χρήστης βλέπει το Version Name (π.χ. 2.0.0), και το Google Play χρησιμοποιεί το Version Code για να καθορίσει την ανάγκη ενημέρωσης.

Τι γίνεται αν υπερβεί η μέγιστη τιμή του Version Code;

Η μέγιστη τιμή του Version Code είναι 2100000000 (Integer.MAX_VALUE). Σε περίπτωση υπέρβασης, ο μεταγλωττής θα επιστρέψει σφάλμα καθώς το πεδίο είναι τύπου int. Για έργα με μεγάλο αριθμό build (CI/CD με καθημερινές εκδόσεις) συνιστάται η χρήση μορφής timestamp ή η επαναφορά του αριθμητή με την έναρξη μιας major έκδοσης.

Μπορώ να χρησιμοποιήσω το Version Code για A/B testing;

Version Code δεν χρησιμοποιείται άμεσα για A/B testing, αλλά το επηρεάζει έμμεσα. Το Google Play επιτρέπει τη ρύθμιση σταδιακής διανομής (staged rollout) βάσει ποσοστού χρηστών για ένα συγκεκριμένο build. Το Version Code αναγνωρίζει το build, και τα A/B tests ρυθμίζονται μέσω Firebase Remote Config ή παρόμοιων υπηρεσιών.

Συμπεράσματα

  • Version Code — ακέραιος αριθμός που αναγνωρίζει μοναδικά κάθε build της εφαρμογής Android
  • Google Play χρησιμοποιεί το Version Code για να καθορίσει την ανάγκη ενημέρωσης
  • Κανόνας αύξησης — κάθε νέο build πρέπει να έχει κώδικα αυστηρά μεγαλύτερο από τον προηγούμενο στο ίδιο track
  • Εύρος τιμών — από 1 έως 2100000000 (Integer.MAX_VALUE)
  • Version Name — ετικέτα κειμένου χρήστη, δεν επηρεάζει τον μηχανισμό ενημέρωσης
  • Αυτοματοποίηση — τα συστήματα CI/CD μπορούν να δημιουργήσουν Version Code από τον αριθμό build ή το timestamp
  • Σύσταση — επιλέξτε μια στρατηγική αύξησης πριν τη δημοσίευση και τηρήστε την σε όλο τον κύκλο ζωής

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης