Δόμηση και δημοσίευση στην ανάπτυξη κινητών: τι είναι, ποιες μορφές και πώς λειτουργεί

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

Η δόμηση και δημοσίευση μιας εφαρμογής κινητής είναι η διαδικασία μετατροπής του πηγαίου κώδικα σε εγκαταστάσιμο αρχείο (APK, AAB, IPA) και η μεταφόρτωσή του στα καταστήματα εφαρμογών. Σύμφωνα με το Google Play Console (2025), το Android App Bundle (AAB) είναι η υποχρεωτική μορφή για δημοσίευση στο Google Play από τον Αύγουστο του 2021. Σε αυτό το άρθρο θα εξετάσουμε τις μορφές δόμησης, τη μεταγλώττιση, την υπογραφή κώδικα, τη διαδικασία δημοσίευσης και τις δοκιμές beta.

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

  • APK — το κλασικό εγκαταστάσιμο αρχείο Android; AAB — η σύγχρονη μορφή για Google Play με δυναμική δημιουργία APK.
  • IPA — το εγκαταστάσιμο αρχείο iOS, υπογεγραμμένο με πιστοποιητικό Apple. Δόμηση μόνο σε macOS.
  • Μεταγλώττιση: JIT (Android έως 6.0), AOT (Android 7+ ART), Bitcode (iOS, προαιρετικά).
  • Code Signing — υποχρεωτική υπογραφή της εφαρμογής με ψηφιακό πιστοποιητικό για την ταυτοποίηση του προγραμματιστή.
  • TestFlight (iOS) και Internal Testing (Android) — εργαλεία δοκιμών beta πριν από τη δημοσίευση.

Μορφές δόμησης: APK, AAB, IPA

APK vs AAB

APK (Android Package Kit) — η παραδοσιακή μορφή δόμησης και δημοσίευσης εφαρμογών κινητής στο Android. Το APK περιέχει όλο τον κώδικα, τους πόρους και το δηλωτικό της εφαρμογής. AAB (Android App Bundle) — μια μορφή που εισήχθη από την Google το 2018 και έγινε υποχρεωτική για νέες εφαρμογές από τον Αύγουστο του 2021. Το AAB δεν εγκαθίσταται απευθείας — η Google Play δημιουργεί δυναμικά ένα βελτιστοποιημένο APK για κάθε συσκευή από το AAB.

Πλεονεκτήματα του AAB: το μέγεθος λήψης είναι κατά μέσο όρο 15% μικρότερο (με την παράδοση μόνο των απαραίτητων πόρων: σωστές πυκνότητες οθόνης, γλώσσες, αρχιτεκτονικές CPU). Το AAB υποστηρίζει επίσης αρθρωτή παράδοση — μπορείτε να φορτώνετε λειτουργικές μονάδες κατόπιν ζήτησης (Play Feature Delivery) ή με καθυστέρηση (Play On-Demand). Για τους προγραμματιστές, το AAB είναι υποχρεωτικό; για διανομή εκτός Google Play (sideloading, αγορές) — μόνο APK.

IPA

IPA (iOS App Store Package) — το εγκαταστάσιμο αρχείο iOS, το οποίο είναι ένα αρχείο ZIP που περιέχει μια υπογεγραμμένη εφαρμογή. Το IPA περιέχει έναν φάκελο Payload/ με το πακέτο .app, Provisioning Profile και υπογραφή. Το IPA δημιουργείται μόνο σε macOS μέσω Xcode, το οποίο δημιουργεί ένα αρχείο (.xcarchive) και εξάγει το IPA. Για διανομή μέσω App Store, το IPA υπογράφεται με Apple Distribution Certificate; για Ad Hoc ή Enterprise — με τα αντίστοιχα πιστοποιητικά.

Σύγκριση μορφών δόμησης iOS και Android
Παράμετρος APK AAB IPA
ΠλατφόρμαAndroidAndroid (Google Play)iOS
ΜορφήΑρχείο ZIPΑρχείο ZIPΑρχείο ZIP
Άμεση εγκατάστασηΝαιΌχι (μέσω Google Play)Μέσω App Store / MDM
ΥπογραφήKeystore (JKS)Keystore (JKS/PEPK)Apple Certificate
App ThinningΌχιΝαι (αυτόματα)Ναι (Slicing, Bitcode)

Μεταγλώττιση και βελτιστοποίηση: JIT, AOT, ART, Bitcode

JIT vs AOT

JIT (Just-In-Time) — μεταγλώττιση κώδικα κατά την εκτέλεση της εφαρμογής, που επηρεάζει την ταχύτητα δόμησης και δημοσίευσης. Στο Android έως την έκδοση 5.0 (Lollipop) χρησιμοποιούνταν Dalvik VM με μεταγλώττιση JIT. Σε κάθε εκκίνηση της εφαρμογής, ο bytecode DEX μετατρεπόταν σε κώδικα μηχανής «επί τόπου». Μειονέκτημα: επιβράδυνση στην πρώτη εκκίνηση και πρόσθετη κατανάλωση ενέργειας. AOT (Ahead-Of-Time) — μεταγλώττιση κώδικα πριν από την εκκίνηση της εφαρμογής, κατά την εγκατάσταση. Από το Android 7.0 (Nougat) και μετά, το ART (Android Runtime) μεταγλωττίζει πλήρως την εφαρμογή κατά την εγκατάσταση.

ART (Android Runtime) — το περιβάλλον χρόνου εκτέλεσης που αντικατέστησε το Dalvik στο Android 5.0. Το ART χρησιμοποιεί μια υβριδική προσέγγιση: μεταγλώττιση AOT κατά την εγκατάσταση + JIT για συχνά εκτελούμενες μεθόδους. Αυτό συνδυάζει την ταχύτητα του AOT (γρήγορη εκκίνηση) με την ευελιξία του JIT (προσαρμοστική βελτιστοποίηση). Αποτέλεσμα: η απόδοση των εφαρμογών Android αυξήθηκε κατά 20-30% σε σύγκριση με το Dalvik. Για τους προγραμματιστές, η μετάβαση στο ART είναι διαφανής — ο κώδικας δεν απαιτεί αλλαγές.

Bitcode και App Thinning

Bitcode — μια ενδιάμεση αναπαράσταση κώδικα (IR) που χρησιμοποιεί η Apple για την εκ νέου μεταγλώττιση του IPA για διαφορετικές αρχιτεκτονικές επεξεργαστών. Το Bitcode είναι προαιρετικό: για εφαρμογές iOS είναι ενεργοποιημένο από προεπιλογή, για watchOS και tvOS είναι υποχρεωτικό. Η Apple μπορεί να μεταγλωττίσει εκ νέου το Bitcode κατά την κυκλοφορία νέων επεξεργαστών χωρίς τη συμμετοχή του προγραμματιστή. App Thinning — η τεχνολογία της Apple που περιλαμβάνει Slicing (παράδοση μόνο των απαραίτητων πόρων για τη συσκευή) και On-Demand Resources (φόρτωση πόρων κατόπιν ζήτησης). Το App Thinning μειώνει το μέγεθος λήψης από το App Store κατά 30-50%.

DEX — μορφή bytecode για Android, που εκτελείται από ART/Dalvik. Ο πηγαίος κώδικας Kotlin/Java μεταγλωττίζεται σε αρχεία class, στη συνέχεια σε DEX μέσω dx ή d8 (ένα σύγχρονο και ταχύτερο εργαλείο). Multidex — ένας μηχανισμός για εφαρμογές που υπερβαίνουν το όριο των 65.536 μεθόδων σε ένα μόνο αρχείο DEX. Σε σύγχρονα έργα, το multidex ενεργοποιείται αυτόματα εάν targetSdkVersion >= 21.

Υπογραφή κώδικα: Code Signing, Keystore, Provisioning Profile

Android: Keystore

Keystore — ένα αρχείο που περιέχει το ιδιωτικό κλειδί και το πιστοποιητικό για την υπογραφή μιας εφαρμογής Android κατά τη δόμηση. Το Keystore δημιουργείται μέσω keytool (η εντολή -genkey) ή Android Studio. Σημαντικό: το Keystore δεν μπορεί να χαθεί — χωρίς αυτό δεν μπορείτε να ενημερώσετε την εφαρμογή στο Google Play. Παράμετροι υπογραφής: keyAlias, keyPassword, storePassword και storeFile. Μορφή: JKS (Java KeyStore) ή PEPK (Play Encrypted Private Key) για AAB.

App Bundle ID (Android) — το μοναδικό αναγνωριστικό της εφαρμογής σε σημειογραφία πακέτου (com.example.app). Version Code — ένας ακέραιος αριθμός για εσωτερική αρίθμηση εκδόσεων (κάθε νέα δόμηση τον αυξάνει). Version Name — μια συμβολοσειρά που εμφανίζεται στον χρήστη (1.2.3). Αυτές οι παράμετροι ορίζονται στο build.gradle σε επίπεδο εφαρμογής.

iOS: Apple Certificate και Provisioning Profile

Apple Certificate — ένα ψηφιακό πιστοποιητικό που επαληθεύει την ταυτότητα του προγραμματιστή. Τύποι: Development (για εντοπισμό σφαλμάτων), Distribution (για App Store), Ad Hoc (για περιορισμένη διανομή). Τα πιστοποιητικά δημιουργούνται στο Apple Developer Account και μεταφορτώνονται στο Keychain. Provisioning Profile — ένα αρχείο που συνδέει το πιστοποιητικό, το App ID (Bundle Identifier) και μια λίστα επιτρεπόμενων συσκευών. Χωρίς Provisioning Profile, η εφαρμογή δεν θα εκτελεστεί σε μια συσκευή.

Bundle ID (iOS) — το μοναδικό αναγνωριστικό της εφαρμογής (com.example.app). Build Number — ο αριθμός δόμησης, αυξάνεται με κάθε build. Marketing Version — η έκδοση που εμφανίζεται στον χρήστη. Διαχείριση εκδόσεων: για iOS, οι παράμετροι ορίζονται στο Info.plist και Project Settings; για Android — στο build.gradle. Στην IT Sectr, αυτοματοποιούμε τις ενημερώσεις εκδόσεων μέσω Fastlane — αυτό εξαλείφει ανθρώπινα λάθη κατά την κυκλοφορία.

Διαδικασία δημοσίευσης στα καταστήματα

Google Play Console

Google Play Console — ένα εργαλείο για τη δημοσίευση εφαρμογών Android. Διαδικασία: εγγραφή λογαριασμού προγραμματιστή ($25 εφάπαξ), δημιουργία εφαρμογής, συμπλήρωση μεταδεδομένων (όνομα, περιγραφή, στιγμιότυπα οθόνης, κατηγορία), μεταφόρτωση AAB, διαμόρφωση τιμών και διανομής, αξιολόγηση. Η Google ελέγχει την εφαρμογή αυτόματα (ιούς, συμμόρφωση με πολιτικές) και χειροκίνητα για ορισμένες κατηγορίες. Η αξιολόγηση διαρκεί από μερικές ώρες έως 2-3 ημέρες.

App Store Connect

App Store Connect — η πλατφόρμα της Apple για τη δημοσίευση εφαρμογών iOS. Διαδικασία: λογαριασμός προγραμματιστή Apple ($99/έτος), δημιουργία εφαρμογής στο App Store Connect, προετοιμασία IPA στο Xcode (Archive → Distribute App → App Store Connect), μεταφόρτωση μέσω Transporter ή Xcode, συμπλήρωση μεταδεδομένων, υποβολή για αξιολόγηση. App Review — η χειροκίνητη αξιολόγηση της Apple μπορεί να διαρκέσει από 24 ώρες έως 7 ημέρες. Τυπικοί λόγοι απόρριψης: μη λειτουργικά κουμπιά, ελλιπές περιεχόμενο, αίτημα άδειας χωρίς εξήγηση.

Δοκιμές beta: TestFlight, Closed/Open Beta

TestFlight (iOS)

TestFlight — το επίσημο εργαλείο της Apple για δοκιμές beta εφαρμογών iOS. Το TestFlight υποστηρίζει Internal Testing (έως 100 δοκιμαστές μέσω email, χωρίς αξιολόγηση) και External Testing (έως 10.000 δοκιμαστές, με αξιολόγηση Apple). Οι δομήσεις είναι διαθέσιμες για 90 ημέρες, μετά τις οποίες πρέπει να μεταφορτωθεί νέα δόμηση. Το TestFlight ενημερώνει αυτόματα την εφαρμογή στους δοκιμαστές όταν μεταφορτωθεί μια νέα δόμηση.

Internal / Closed / Open Beta (Android)

Internal Testing (Android) — έως 100 δοκιμαστές, χωρίς αξιολόγηση Google, η δόμηση είναι άμεσα διαθέσιμη. Closed Beta — έως 1000 δοκιμαστές μέσω email ή Google Groups, χωρίς αξιολόγηση. Open Beta — απεριόριστοι δοκιμαστές μέσω δημόσιου συνδέσμου, με αξιολόγηση Google. Staged Rollout — σταδιακή αύξηση του ποσοστού των χρηστών που λαμβάνουν την ενημέρωση (5% → 20% → 50% → 100%). Αυτή είναι η ασφαλέστερη μέθοδος κυκλοφορίας.

App Thinning (iOS) — αυτόματη μείωση του μεγέθους του ληφθέντος IPA: Slicing (μόνο απαραίτητοι πόροι για τη συσκευή), Bitcode (βελτιστοποίηση επεξεργαστή), On-Demand Resources (λήψη κατόπιν ζήτησης). Στην IT Sectr, χρησιμοποιούμε TestFlight για δοκιμές beta iOS και Internal Testing για Android — αυτό μας επιτρέπει να εντοπίζουμε προβλήματα πριν από μια μαζική κυκλοφορία.

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

Ποια είναι η διαφορά μεταξύ APK και AAB;

APK — ένα καθολικό εγκαταστάσιμο αρχείο, λειτουργεί σε οποιαδήποτε συσκευή. AAB — μια μορφή για Google Play που δημιουργεί το βέλτιστο APK για κάθε συσκευή. Το μέγεθος λήψης μέσω AAB είναι 15% μικρότερο. Για το Google Play, το AAB είναι υποχρεωτικό; για sideloading — APK.

Τι συμβαίνει εάν χάσετε το Keystore;

Δεν θα μπορείτε να ενημερώσετε την εφαρμογή στο Google Play — θα πρέπει να δημιουργήσετε μια νέα εφαρμογή με νέο package name. Φυλάξτε το Keystore σε ασφαλές μέρος (διαχειριστής κωδικών πρόσβασης, κρυπτογραφημένο Git). Το Google Play App Signing (χρήση κλειδιών Google) μειώνει αυτόν τον κίνδυνο.

Πόσο κοστίζει η δημοσίευση στα καταστήματα;

Google Play — $25 εφάπαξ για λογαριασμό προγραμματιστή. App Store — $99/έτος. Και τα δύο ποσά περιλαμβάνουν απεριόριστο αριθμό εφαρμογών. Για iOS χρειάζεστε επίσης Mac (από $999) ή ενοικίαση Mac στο cloud.

Τι είναι το Staged Rollout;

Staged Rollout — σταδιακή κυκλοφορία ενημέρωσης: πρώτα το 5% των χρηστών, στη συνέχεια 20%, 50% και 100%. Εάν εντοπιστούν σφάλματα σε οποιοδήποτε στάδιο, η κυκλοφορία διακόπτεται. Διαθέσιμο στο Google Play Console.

Πρέπει να πληρώσω για λογαριασμό προγραμματιστή για δοκιμές;

Για Android — όχι, μπορείτε να εγκαταστήσετε APK σε μια συσκευή μέσω USB ή εξομοιωτή χωρίς λογαριασμό. Για iOS — ναι, χωρίς λογαριασμό $99/έτος, η εφαρμογή θα λειτουργεί μόνο στον προσομοιωτή, όχι σε πραγματική συσκευή.

Σύνοψη

  • AAB — η σύγχρονη μορφή για Google Play (υποχρεωτική από το 2021). APK — για διανομή εκτός καταστήματος.
  • IPA — το εγκαταστάσιμο αρχείο iOS, δημιουργείται μόνο σε Mac, υπογράφεται με Apple Certificate.
  • ART (Android Runtime) χρησιμοποιεί υβριδική προσέγγιση AOT + JIT; Bitcode — προαιρετική ενδιάμεση αναπαράσταση για iOS.
  • Keystore (Android) και Apple Certificate + Provisioning Profile (iOS) — υποχρεωτικά στοιχεία υπογραφής κώδικα.
  • Google Play Console — $25 εφάπαξ; App Store Connect — $99/έτος. Η αξιολόγηση διαρκεί από ώρες έως μία εβδομάδα.
  • TestFlight — δοκιμές beta iOS; Internal / Closed / Open Beta — για Android.
  • Αυτοματοποιήστε την υπογραφή κώδικα και τη δόμηση μέσω Fastlane — αυτό εξαλείφει λάθη και επιταχύνει τις κυκλοφορίες.

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

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

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