Version Name — είναι η συμβολοσειρά έκδοσης της εφαρμογής που βλέπει ο χρήστης στο κατάστημα και στη συσκευή. Σε αντίθεση με το Build Number, αυτή η παράμετρος έχει σημασιολογική αξία και αντανακλά τη σημασία των αλλαγών. Σύμφωνα με Android Developers, 2025, η σωστή χρήση του Version Name βοηθά τους χρήστες να καταλαβαίνουν την επικαιρότητα των ενημερώσεων και να εμπιστεύονται τη διαδικασία ανάπτυξης.
Κύρια Σημεία
Version Name — είναι μια σημασιολογική συμβολοσειρά που αναγνωρίζει την αποδέσμευση της εφαρμογής για τον χρήστη. Σε αντίθεση με τους τεχνικούς αναγνωριστικούς build, αυτή η παράμετρος φέρει νόημα: βάσει αυτού, ο χρήστης αξιολογεί πόσο διαφέρει η νέα ενημέρωση από την προηγούμενη.
Το Version Name εμφανίζεται στην κάρτα εφαρμογής στο Google Play και στο App Store, στην ενότητα «Σχετικά με την εφαρμογή» στη συσκευή, καθώς και στα συστημικά διαλόγου ενημέρωσης. Οι προγραμματιστές το αναφέρουν στα αρχεία ρύθμισης του έργου πριν από τη δημιουργία της έκδοσης.
Σύμφωνα με το Semantic Versioning 2.0 (2023), το φορμάτ Major.Minor.Patch χρησιμοποιείται σε 78% των εφαρμογών για κινητά. Η major έκδοση αλλάζει σε ασύμβατες αλλαγές API, minor — κατά την προσθήκη λειτουργικότητας, patch — κατά τη διόρθωση σφαλμάτων.
Χρησιμοποιείτε το Version Name για επικοινωνία με τον χρήστη: πρέπει αμέσως να καταλαβαίνει πόσο μεγάλη ενημέρωση θα λάβει — major, minor ή διορθωτική.
Η σημασιολογική έκδοση αποτελείται από τρεις αριθμούς που χωρίζονται με τελείες: Major.Minor.Patch. Κάθε από αυτά τα συστατικά ευθύνεται για ένα συγκεκριμένο επίπεδο αλλαγών στην εφαρμογή.
Η major έκδοση (Major) αυξάνεται με ριζικές αλλαγές που σπάνε την προσθετική συμβατότητα. Η minor έκδοση (Minor) προσθέτει νέα λειτουργικότητα χωρίς να επηρεάζει την υφιστάμενη. Το Patch περιέχει μόνο διορθώσεις σφαλμάτων.
Για παράδειγμα, η έκδοση 3.2.1 σημαίνει: τρίτη major έκδοση, δεύτερη minor ενημέρωση, πρώτο patch. Αυτό το σύστημα είναι κατανοητό και για τους προγραμματιστές και για τους χρήστες.
Version Name είναι ορατό στον χρήστη σε αρκετά βασικά σημεία. Στο κατάστημα εφαρμογών εμφανίζεται στην κεφαλίδα της κάρτας εφαρμογής και στη λίστα ενημερώσεων. Στη συσκευή — στις ρυθμίσεις συστήματος στην ενότητα «Σχετικά με την εφαρμογή».
Στο Google Play, το Version Name εμφανίζεται κάτω από το όνομα της εφαρμογής και επηρεάζει την απόφαση του χρήστη για ενημέρωση. Στο App Store, η συμβολοσειρά έκδοσης εμφανίζεται στην ίδια θέση κατά την προβολή της σελίδας της εφαρμογής.
Σύμφωνα με την έρευνα της Apptentive (2024), το 67% των χρηστών ελέγχει την έκδοση της εφαρμογής πριν την ενημέρωση, και η κατανοητή σημασιολογία αυξάνει την προσέλευση εγκατάστασης κατά 23%.
Στο Android, το Version Name ορίζεται από την παράμετρο versionName στο αρχείο build.gradle (σε επίπεδο αρθρώματος). Αυτή η παράμετρος είναι συμβολοσειρά και μπορεί να περιέχει οποιαδήποτε σύμβολα, συμπεριλαμβανομένων τελειών, παύλες και γραμμάτων.
Η παράμετρος δηλώνεται μέσα στο μπλοκ android.defaultConfig μαζί με την υποχρεωτική παράμετρο versionCode. Το Android δεν επιβάλλει περιορισμούς στο φορμάτ της συμβολοσειράς, αλλά το Google Play συνιστά τη χρήση σημασιολογικού φορμάτ.
Σύμφωνα με το Android Developers (2025), το Google Play χρησιμοποιεί το versionName για εμφάνιση στη διεπαφή του καταστήματος, αλλά δεν αναλύει προγραμματιστά το περιεχόμενό του — μόνο το versionCode επηρεάζει τη λογική ενημέρωσης.
Καθορίστε το Version Name σε μορφή Major.Minor.Patch και συγχρονίστε το με την ετικέτα στο σύστημα ελέγχου εκδόσεων για ακριβή αναγνώριση της αποδέσμευσης.
Gradle επιτρέπει τον καθορισμό του versionName στατικά στο build.gradle ή δυναμικά μέσω scripts δημιουργίας. Η δυναμική δημιουργία είναι χρήσιμη για αυτόματες νυχτερινές δημιουργίες και αγωγούς CI/CD.
Στο build.gradle μπορείτε να χρησιμοποιήσετε μεταβλητές περιβάλλοντος, παραμέτρους γραμμής εντολών ή κλήσεις shell scripts για τη διαμόρφωση του versionName. Η τυπική προσέγγιση είναι η ανάγνωση της έκδοσης από το αρχείο version.properties.
Αυτή η ευελιξία επιτρέπει στις ομάδες να αυτοματοποιήσουν τη διαδικασία εκδόσεων και να εξαλείψουν τον ανθρώπινο παράγοντα κατά την προετοιμασία της αποδέσμευσης.
Στο iOS, το Version Name ορίζεται από το κλειδί CFBundleShortVersionString στο αρχείο Info.plist. Αυτή είναι υποχρεωτική παράμετρος για δημοσίευση στο App Store και είναι αυστηρά τυποποιημένη ως συμβολοσειρά.
Σε αντίθεση με το Android, το App Store Connect ελέγχει το φορμάτ του Version Name και απαιτεί συμμόρφωση με το πρότυπο αριθμών που χωρίζονται με τελείες. Το μέγιστο μήκος της συμβολοσειράς είναι 18 χαρακτήρες και κάθε συστατικό της έκδοσης δεν μπορεί να υπερβαίνει το 255.
Σύμφωνα με το Apple Developer Documentation (2025), το CFBundleShortVersionString χρησιμοποιείται από το App Store για την εμφάνιση της έκδοσης στη διεπαφή του καταστήματος και στα συστημικά διάλογου στη συσκευή του χρήστη.
Κατά τη φόρτωση της δημιουργίας στο App Store Connect, βεβαιωθείτε ότι το Version Name αντιστοιχεί στην έκδοση που αναφέρεται στα υλικά μάρκετινγκ — αυτό απλοποιεί την επικοινωνία με τους χρήστες.
Xcode παρέχει γραφική διεπαφή για τροποποίηση του Version Name στις ρυθμίσεις target. Το πεδίο «Marketing Version» βρίσκεται στην καρτέλα General στην ενότητα Identity. Οι αλλαγές αποθηκεύονται αυτόματα στο Info.plist.
Για αυτοματοποίηση μπορείτε να χρησιμοποιήσετε scripts δημιουργίας στο Xcode Build Phases ή το εργαλείο agvtool (Apple Generic Version Tool). Το agvtool επιτρέπει τη διαχείριση εκδόσεων από τη γραμμή εντολών και την ενσωμάτωση με CI/CD.
Αυτή η προσέγγιση είναι ιδιαίτερα βολική κατά τη χρήση fastlane ή Jenkins για αυτόματη δημιουργία και διανομή εφαρμογών.
Version Name και Build Number εκτελούν διαφορετικές εργασίες στη διαδικασία ανάπτυξης. Το Version Name είναι μια συμβολοσειρά χρήστη, και το Build Number είναι ένας εσωτερικός αριθμητικός αναγνωριστικός που αναγνωρίζει μοναδικά κάθε δημιουργία.
Το Build Number (versionCode στο Android, CFBundleVersion στο iOS) πρέπει να αυξάνεται με κάθε νέα δημιουργία και χρησιμοποιείται από τα καταστήματα εφαρμογών για να καθορίσουν ποια έκδοση είναι νεότερη. Το Version Name μπορεί να παραμείνει αμετάβλητο για πολλαπλές δημιουργίες της ίδιας έκδοσης.
Σύμφωνα με την Google Play Policy (2025), δύο εφαρμογές με το ίδιο versionCode θεωρούνται η ίδια έκδοση — το versionCode πρέπει να είναι μοναδικό για κάθε APK. Το Version Name δεν συμμετέχει σε αυτόν τον έλεγχο.
Πάντα αυξάνετε το Build Number σε κάθε δημιουργία και αλλάζετε το Version Name μόνο όταν αλλάζει η λειτουργικότητα — αυτό αποτρέπει συγκρούσεις κατά τη δημοσίευση.
Η επιλογή του Version Name εξαρτάται από τη στρατηγική εκδόσεων της ομάδας. Η πιο διαδεδομένη προσέγγιση είναι η σημασιολογική έκδοση (SemVer), αλλά υπάρχουν και εναλλακτικά σχήματα, όπως η έκδοση βάσει ημερολογίου ή η έκδοση βάσει ημερομηνίας αποδέσμευσης.
Semantic Versioning 2.0 συνιστά το φορμάτ Major.Minor.Patch με προαιρετικά επιθήματα pre-release. Για εφαρμογές για κινητά, το σχήμα Major.Minor είναι επίσης δημοφιλές, όπου το patch παραλείπεται για απλοποίηση της αντίληψης.
Η έκδοση βάσει ημερολογίου (CalVer) χρησιμοποιεί την ημερομηνία αποδέσμευσης ως αριθμό έκδοσης — για παράδειγμα, 25.06 (έτος και μήνας). Αυτή η προσέγγιση είναι βολική για εφαρμογές με συχνές αποδεσμεύσεις, όπου η σημασιολογία δεν έχει σημασία.
Σημασιολογική έκδοση είναι κατάλληλη για εφαρμογές με δημόσιο API, όπου η προσθετική συμβατότητα είναι σημαντική. Οι χρήστες και οι ενσωματωτές καταλαβαίνουν ποιες αλλαγές να αναμένουν κατά την ενημέρωση.
Έκδοση βάσει ημερολογίου επιλέγεται για εφαρμογές όπου για τον χρήστη είναι σημαντική η φρεσκάδα της αποδέσμευσης, όχι το μέγεθος των αλλαγών. Για παράδειγμα, συστήματα συγκέντρωσης ειδήσεων ή εφαρμογές καιρού.
Υβριδικό σχήμα συνδυάζει και τις δύο προσεγγίσεις: Major.Minor.RC, όπου RC είναι ο αριθμός δημιουργίας για έναν συγκεκριμένο υποψήφιο αποδέσμευσης. Ένα τέτοιο σχήμα είναι βολικό κατά την ενεργή δοκιμή βήτα.
Παραδείγματα κώδικα παρακάτω δείχνουν πώς να ορίσετε το Version Name σε Android και iOS. Για Android χρησιμοποιείται το Gradle, για iOS — Xcode Build Settings με agvtool.
Στο Android, η έκδοση ορίζεται στο αρχείο app/build.gradle μέσα στο μπλοκ defaultConfig. Η παράμετρος versionName δέχεται τιμή συμβολοσειράς.
android {
defaultConfig {
versionCode 3
versionName "2.1.0"
}
}
versionName μπορεί επίσης να διαβαστεί από ένα εξωτερικό αρχείο ή να δημιουργηθεί δυναμικά με χρήση Gradle Script.
Δυναμική έκδοση δημιουργείται από μεταβλητές περιβάλλοντος του συστήματος CI/CD. Αυτό εγγυάται ότι κάθε δημιουργία λαμβάνει τον σωστό αριθμό έκδοσης.
def getVersionName = {
return System.getenv("VERSION_NAME") ?:
"2.1.0"
}
android {
defaultConfig {
versionName getVersionName()
}
}
Αυτή η προσέγγιση αυτοματοποιεί την έκδοση και εξαλείφει τον κίνδυνο ασυμφωνίας μεταξύ της δημιουργίας και της ετικέτας στο αποθετήριο.
Στο iOS, η έκδοση μπορεί να οριστεί μέσω Xcode ή μέσω γραμμής εντολών με agvtool.
# Ορισμός έκδοσης μάρκετινγκ
xcrun agvtool new-marketing-version 2.1.0
# Ανάγνωση τρέχουσας έκδοσης
xcrun agvtool what-marketing-version
agvtool ενημερώνει αυτόματα το Info.plist και συγχρονίζει την έκδοση μεταξύ όλων των targets στο έργο Xcode.
Συχνές Ερωτήσεις
Version Name — η συμβολοσειρά έκδοσης χρήστη που εμφανίζεται στο κατάστημα εφαρμογών. Build Number — εσωτερικός αριθμητικός αναγνωριστικός build που αναγνωρίζει μοναδικά κάθε build και χρησιμοποιείται από τα καταστήματα για τον καθορισμό της νεότητας της έκδοσης.
Στο Android, το versionName μπορεί να περιέχει οποιαδήποτε σύμβολα, συμπεριλαμβανομένων γραμμάτων και παύλες. Στο iOS, το CFBundleShortVersionString πρέπει να αποτελείται από αριθμούς που χωρίζονται με τελείες, αν και επιτρέπονται επιθήματα γραμμάτων για εκδόσεις pre-release.
Χρησιμοποιήστε εργαλεία CI/CD — GitHub Actions, GitLab CI ή Jenkins. Το script δημιουργίας διαβάζει την τρέχουσα έκδοση από το αρχείο, αυξάνει το απαιτούμενο συστατικό και γράφει τη νέα τιμή πριν από τη δημιουργία έκδοσης.
Το κατάστημα θα αποδεχτεί τη νέα δημιουργία αν το Build Number έχει αυξηθεί. Ωστόσο, οι χρήστες δεν θα δουν αλλαγές στην έκδοση, πράγμα που μπορεί να προκαλέσει σύγχυση. Συνιστάται η αλλαγή του Version Name σε κάθε αποδέσμευση νέας λειτουργικότητας.
Το φορμάτ Major.Minor.Patch — η βέλτιστη επιλογή για τα περισσότερα έργα. Είναι κατανοητό για χρήστες και προγραμματιστές, συμμορφώνεται με το πρότυπο SemVer και υποστηρίζεται από όλα τα καταστήματα εφαρμογών.
Σύνοψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης