TestFlight: δοκιμή εφαρμογής iPhone πριν την υποβολή
Από Mehdi Azizi
Ενημερώθηκε στις , 8 λ.
Εσωτερικοί ή εξωτερικοί testers, beta review, δημόσιος σύνδεσμος, builds που ισχύουν 90 ημέρες: το TestFlight απλά, με τη λίστα ελέγχου πριν την Apple.
Τι είναι το TestFlight και σε τι χρησιμεύει;
Το TestFlight είναι η υπηρεσία της Apple που σου επιτρέπει να εγκαταστήσεις την εφαρμογή σου σε πραγματικά iPhone πριν κυκλοφορήσει στο App Store. Ανεβάζεις ένα build στο App Store Connect, προσκαλείς testers και εκείνοι το εγκαθιστούν με την εφαρμογή TestFlight, που είναι δωρεάν στο App Store. Υπάρχουν δύο τύποι testers: οι εσωτερικοί, έως 100 μέλη της ομάδας σου, χωρίς έλεγχο από την Apple, και οι εξωτερικοί, έως 10.000 άτομα, που προσκαλούνται με e-mail ή με δημόσιο σύνδεσμο, μετά από ένα beta review του πρώτου σου build. Κάθε build μένει διαθέσιμο για δοκιμές 90 ημέρες.
| Κριτήριο | Εσωτερικοί testers | Εξωτερικοί testers |
|---|---|---|
| Μέγιστος αριθμός | 100 | 10.000 |
| Πρόσβαση στον λογαριασμό σου | Ναι, με ρόλο | Όχι |
| Πρόσκληση | Προσθήκη στην εσωτερική ομάδα | E-mail ή δημόσιος σύνδεσμος |
| Beta review της Apple | Κανένα | Στο πρώτο build |
| Για ποιον | Εσύ, ένας συνεργάτης, ένα δικό σου πρόσωπο | Φίλοι, πρώτοι χρήστες |
Για να χρησιμοποιήσεις το TestFlight, χρειάζεσαι πληρωμένο λογαριασμό Apple Developer: η υπηρεσία δεν είναι διαθέσιμη με δωρεάν λογαριασμό. Όλος ο υπόλοιπος οδηγός θεωρεί ότι έχεις έναν, στο πλαίσιο του κανονικού προγράμματος: το Enterprise πρόγραμμα της Apple δεν δίνει πρόσβαση στο TestFlight.
Στις εφαρμογές μου, κάθε build που στέλνω με το EAS Submit περνάει από το TestFlight και από το iPhone μου πριν πάει για review. Εκεί βρίσκω τα προβλήματα που δεν φαίνονται στο development.
Ανέβασμα build στο TestFlight
Ένα build είναι μια μεταγλωττισμένη και υπογεγραμμένη έκδοση της εφαρμογής σου: αν είναι λάθος υπογεγραμμένο, η Apple το απορρίπτει στο ανέβασμα με ITMS-90034. Για να εμφανιστεί στο TestFlight, πρέπει να το στείλεις στο App Store Connect. Με το Expo, αυτό γίνεται με eas build --platform ios και μετά eas submit --platform ios, με αρκετά πρόσφατο build image για να αποφύγεις το ITMS-90725. Σύμφωνα με την τεκμηρίωση του Expo, το build εμφανίζεται στο TestFlight αφού το επεξεργαστεί η Apple, συνήθως σε 10 με 15 λεπτά. Μπορείς να τα κάνεις όλα αυτά από PC: ο οδηγός δημοσίευση εφαρμογής iOS χωρίς Mac περιγράφει όλη τη διαδικασία.
Δύο λεπτομέρειες κολλάνε συχνά την πρώτη φορά:
- Ο αριθμός build πρέπει να αλλάζει σε κάθε αποστολή. Η Apple απορρίπτει δύο builds με τον ίδιο αριθμό για την ίδια έκδοση. Με το EAS, ενεργοποίησε την αυτόματη αύξηση και ξεχνάς το θέμα.
- Η ερώτηση για την κρυπτογράφηση. Όσο δεν έχεις απαντήσει στην ερώτηση για τη χρήση κρυπτογράφησης, το build μένει μπλοκαρισμένο με κατάσταση Missing Compliance. Μπορείς να απαντάς κάθε φορά στο App Store Connect ή να το δηλώσεις μία και καλή στη ρύθμιση της εφαρμογής σου.
Εσωτερικοί testers: η ομάδα σου, χωρίς αναμονή
Οι εσωτερικοί testers είναι χρήστες του λογαριασμού σου στο App Store Connect, με ρόλο που τους έχεις δώσει. Η Apple επιτρέπει έως 100, και ο καθένας μπορεί να εγκαταστήσει την εφαρμογή σε πολλές συσκευές, έως 30.
Το μεγάλο τους πλεονέκτημα: δεν υπάρχει beta review. Μόλις το build ολοκληρώσει την επεξεργασία, χωρίς αυτόματο σφάλμα όπως το ITMS-90717, το προσθέτεις στην εσωτερική σου ομάδα και είναι διαθέσιμο. Είναι η σωστή ομάδα για σένα, για έναν συνεργάτη ή για κάποιο δικό σου άτομο στο οποίο δίνεις πρόσβαση στον λογαριασμό σου.
Ο περιορισμός τους: πρέπει να τους προσθέσεις ως χρήστες του λογαριασμού σου στο App Store Connect. Δεν ταιριάζει για αγνώστους.
Εξωτερικοί testers και beta review
Οι εξωτερικοί testers δεν χρειάζονται καμία πρόσβαση στον λογαριασμό σου. Μπορείς να προσκαλέσεις έως 10.000, με e-mail ή με δημόσιο σύνδεσμο. Είναι η σωστή ομάδα για φίλους, πρώτους χρήστες, μια κοινότητα.
Σε αντάλλαγμα, η Apple ελέγχει το build πριν τους το ανοίξει. Όταν προσθέτεις το πρώτο build μιας έκδοσης σε εξωτερική ομάδα, πηγαίνει για beta review. Τα επόμενα builds της ίδιας έκδοσης δεν χρειάζονται απαραίτητα πλήρη έλεγχο.
Πριν από αυτή την αποστολή, το App Store Connect σού ζητά πληροφορίες για τη δοκιμή:
- μια περιγραφή της beta, που λέει στους testers τι πρέπει να κοιτάξουν·
- μια διεύθυνση e-mail για τα σχόλια·
- τα στοιχεία επικοινωνίας σου, ώστε να μπορεί να σε βρει η Apple.
Το beta review δεν είναι το review του App Store. Ένα build που εγκρίθηκε στο TestFlight μπορεί ακόμα να απορριφθεί στη δημοσίευση.
Το beta review ελέγχει ότι το build τηρεί τους κανόνες, αλλά το τελικό review κοιτάει επίσης τη σελίδα σου στο store, τις συνδρομές σου, τα νομικά σου κείμενα και τη συνολική εμπειρία. Έχε στο μυαλό σου τους κλασικούς λόγους απόρριψης, που περιγράφω στο γιατί η Apple απορρίπτει μια εφαρμογή.
Πρόσκληση testers με δημόσιο σύνδεσμο
Ο δημόσιος σύνδεσμος είναι ο πιο απλός τρόπος να δοκιμάσουν την εφαρμογή σου άνθρωποι που δεν γνωρίζεις ακόμα. Αυτή είναι η διαδικασία της Apple, με τις ετικέτες του interface στα αγγλικά:
- Στο App Store Connect, άνοιξε την εφαρμογή σου και μετά την καρτέλα TestFlight.
- Κάτω από το External Testing, επίλεξε την εξωτερική σου ομάδα.
- Πάτησε Create Public Link.
- Επίλεξε Open to Anyone για να ανοίξεις τον σύνδεσμο σε όλους ή Filter by Criteria για να τον περιορίσεις σε συγκεκριμένες συσκευές και εκδόσεις iOS.
- Αν θέλεις, βάλε όριο testers με το Set Limit.
Μετά μοιράζεσαι τον σύνδεσμο όπου θέλεις: μήνυμα, social media, e-mail. Ο άλλος εγκαθιστά την εφαρμογή TestFlight, ανοίγει τον σύνδεσμο και αποδέχεται την πρόσκληση.
Δύο πράγματα που πρέπει να ξέρεις πριν τον διαδώσεις ευρέως:
- Βάλε όριο. Αν ο σύνδεσμός σου κυκλοφορήσει περισσότερο απ' ό,τι περίμενες, θα κρατήσεις τον έλεγχο του αριθμού των testers.
- Οι testers μέσω δημόσιου συνδέσμου είναι ανώνυμοι. Το App Store Connect δείχνει γι' αυτούς μόνο την ημερομηνία εγκατάστασης, τα sessions και τα crashes. Αν θέλεις να ξέρεις ποιος δοκίμασε τι, προτίμησε την πρόσκληση με e-mail.
Πόσο διαρκεί ένα build στο TestFlight;
Ένα build μένει διαθέσιμο στους testers για 90 ημέρες. Μετά λήγει και οι testers σου δεν μπορούν πια να το ανοίξουν. Αν η beta σου κρατήσει περισσότερο, απλώς ανέβασε νέο build πριν τη λήξη.
Στην πράξη, θα ανεβάζεις νέα builds πολύ πιο συχνά: σε κάθε σημαντική διόρθωση. Κάθε νέο build που προστίθεται στην ομάδα προτείνεται στους testers σου, που το παίρνουν από την εφαρμογή TestFlight.
Συλλογή σχολίων από τους testers
Το TestFlight έχει ενσωματωμένο σύστημα σχολίων: ο tester τραβάει screenshot μέσα στην εφαρμογή σου, μπορεί να το σχολιάσει και σου το στέλνει. Αν η εφαρμογή κρασάρει, λαμβάνεις αναφορά crash και ο tester μπορεί να προσθέσει πλαίσιο. Τα βρίσκεις όλα στο App Store Connect.
Είναι χρήσιμο, αλλά δεν αρκεί για να καταλάβεις ένα συγκεκριμένο crash. Στις εφαρμογές μου προσθέτω το Sentry, που αναφέρει το σφάλμα μαζί με τη γραμμή κώδικα που φταίει, και το PostHog, που δείχνει πού εγκαταλείπουν οι χρήστες. Και τα δύο λειτουργούν σε build του TestFlight όπως και στην παραγωγή.
Δοκιμή συνδρομών στο TestFlight
Αν η εφαρμογή σου πουλάει συνδρομή, το TestFlight είναι το μέρος όπου ελέγχεις ότι λειτουργεί πραγματικά. Οι αγορές σε build του TestFlight περνούν από το δοκιμαστικό περιβάλλον της Apple: οι testers σου δεν χρεώνονται. Οι ανανεώσεις είναι επιταχυνόμενες: κάθε συνδρομή ανανεώνεται μία φορά την ημέρα, έως έξι φορές μέσα σε μία εβδομάδα, όποια κι αν είναι η πραγματική της διάρκεια.
Έλεγξε τουλάχιστον ότι οι τιμές που εμφανίζονται είναι σωστές, ότι η αγορά ξεκλειδώνει πράγματι την εφαρμογή και ότι το κουμπί επαναφοράς βρίσκει τη συνδρομή μετά από επανεγκατάσταση. Χρησιμοποιώ το RevenueCat για τις συνδρομές των εφαρμογών μου· όλο το στήσιμο, από τα προϊόντα στο App Store Connect μέχρι το paywall, περιγράφεται στη σελίδα συνδρομές in-app στο iOS.
Τι πρέπει να δοκιμάσεις πριν την αποστολή στην Apple
Αυτή είναι η λίστα που ακολουθώ πριν από κάθε αποστολή για review. Κάθε σημείο αντιστοιχεί σε λόγο απόρριψης ή σε crash που μπορεί να αποφευχθεί.
Η πρώτη εκκίνηση
- Διάγραψε την εφαρμογή, εγκατάστησέ την ξανά από το TestFlight, άνοιξέ την. Αυτό θα κάνει ο reviewer.
- Πέρασε όλο το onboarding, χωρίς να παραλείψεις τίποτα.
- Αρνήσου κάθε άδεια (ειδοποιήσεις, κάμερα, τοποθεσία) και έλεγξε ότι η εφαρμογή συνεχίζει να λειτουργεί.
Τα χρήματα
- Το paywall δείχνει τις τιμές, τη διάρκεια και συνδέσμους προς τους όρους χρήσης και την πολιτική απορρήτου.
- Η αγορά λειτουργεί, και η επαναφορά επίσης.
- Όλα τα ρυθμισμένα προϊόντα είναι ορατά στον reviewer: η guideline 2.1 ζητά οι αγορές εντός εφαρμογής να είναι πλήρεις, ορατές και λειτουργικές.
Οι δύσκολες συνθήκες
- Λειτουργία πτήσης και αργό δίκτυο: ένα σαφές μήνυμα, όχι λευκή οθόνη.
- Το μικρότερο iPhone που υποστηρίζεις και το μεγαλύτερο: τίποτα κομμένο, τίποτα κρυμμένο από το πληκτρολόγιο. Μια κομμένη οθόνη σε μικρό iPhone μού κόστισε απόρριψη στο Solys.
- Τα μεγάλα κείμενα, αν η εφαρμογή σου είναι μεταφρασμένη.
Ο φάκελος για τον reviewer
- Αν η εφαρμογή σου ζητά σύνδεση, ένας demo λογαριασμός στις σημειώσεις του review, με το backend σου σε λειτουργία. Η guideline 2.1 το ζητά ρητά.
- Σημειώσεις review που εξηγούν σε δύο προτάσεις τι κάνει η εφαρμογή και πού βρίσκεται η κύρια λειτουργία.
Αν παρ' όλα αυτά η εφαρμογή σου απορριφθεί, η σελίδα εφαρμογή που απορρίφθηκε από την Apple εξηγεί πώς να απαντήσεις χωρίς να χάσεις μια εβδομάδα. Και για τη συνολική εικόνα της δημοσίευσης, από τη σελίδα στο store μέχρι την κυκλοφορία, διάβασε το δημοσίευση εφαρμογής στο App Store.
Ένα φύλλο ελέγχου για να το συμπληρώσεις στο build σου
Κατέβασε το φύλλο με τα 16 σενάρια σε μορφή CSV. Ξεχωρίζει την προετοιμασία, την ενέργεια που κάνεις, το αναμενόμενο αποτέλεσμα και την απόδειξη που παρατήρησες. Εισήγαγέ το στο Numbers, στο Excel ή στο Google Sheets και μετά συμπλήρωσε την έκδοση, τη συσκευή και το αποτέλεσμα κάθε δοκιμής.
Για ένα φανταστικό ημερολόγιο ανάγνωσης, το «αποθήκευσε μια σελίδα» δεν αρκεί: σημείωσε τη σελίδα 24, κλείσε εντελώς την εφαρμογή, άνοιξέ την ξανά και βρες την τιμή. Μια δοκιμή που δεν εκτελέστηκε μένει «Προς δοκιμή». Αν η εφαρμογή σου δεν έχει καμία συνδρομή, γράψε «Δεν εφαρμόζεται» στα σενάρια αγοράς, μαζί με αυτόν τον λόγο.
Το φύλλο είναι αφετηρία για να το προσαρμόσεις, όχι πιστοποίηση. Βρες επίσης τις σημειώσεις App Review και τα άλλα δωρεάν πρότυπα για να εξηγήσεις στον reviewer τη διαδρομή που πραγματικά έλεγξες.
Από το TestFlight στο App Store
Το TestFlight είναι το στάδιο όπου η εφαρμογή σου γίνεται πραγματική: τρέχει σε αληθινό iPhone, στα χέρια αληθινών ανθρώπων. Στη διαδρομή του iOS Kit, είναι το δεύτερο βήμα: φτιάχνεις τον πυρήνα της εφαρμογής και τον δοκιμάζεις στο iPhone σου με το TestFlight, πριν συνδέσεις τις συνδρομές και ετοιμάσεις τη δημοσίευση.
Μετά το TestFlight έρχεται το review της Apple: το Apple Review Kit συγκεντρώνει τη λίστα ελέγχου μου πριν την αποστολή και τις σημειώσεις για τον reviewer. Η αρχική σελίδα δείχνει τα τέσσερα βήματα για να φτιάξεις την εφαρμογή κινητού σου με το Claude Code.
Κανείς δεν μπορεί να σου εγγυηθεί ότι η Apple θα εγκρίνει την εφαρμογή σου: η Apple αποφασίζει.
Συχνές ερωτήσεις
Πώς δοκιμάζω την εφαρμογή iPhone μου με το TestFlight;
Ανέβασε ένα build στο App Store Connect και μετά πρόσθεσέ το σε μια ομάδα testers. Με το Expo, το μεταγλωττίζεις με το EAS Build και το στέλνεις με το EAS Submit: εμφανίζεται στο TestFlight αφού το επεξεργαστεί η Apple, συνήθως σε 10 με 15 λεπτά σύμφωνα με το Expo. Οι testers σου το εγκαθιστούν με την εφαρμογή TestFlight, δωρεάν στο App Store. Χρειάζεσαι πληρωμένο λογαριασμό Apple Developer.
Πώς δημιουργώ σύνδεσμο TestFlight για να προσκαλέσω testers;
Στο App Store Connect, άνοιξε την καρτέλα TestFlight της εφαρμογής σου, επίλεξε την ομάδα σου κάτω από το External Testing και πάτησε Create Public Link. Επίλεξε Open to Anyone ή Filter by Criteria και μετά βάλε όριο με το Set Limit. Οι testers μέσω δημόσιου συνδέσμου μένουν ανώνυμοι: αν θέλεις να ξέρεις ποιος δοκίμασε τι, προτίμησε να τους προσκαλέσεις με e-mail.
Το beta review του TestFlight αντικαθιστά το review του App Store;
Όχι. Το beta review ελέγχει ότι το build τηρεί τους κανόνες, αλλά το τελικό review κοιτάει επίσης τη σελίδα σου στο store, το age rating, τις συνδρομές σου, τα νομικά σου κείμενα και τη συνολική εμπειρία. Ένα build που εγκρίθηκε στο TestFlight μπορεί λοιπόν ακόμα να απορριφθεί στη δημοσίευση. Μόνο οι εξωτερικοί testers ενεργοποιούν beta review, στο πρώτο build μιας έκδοσης: οι εσωτερικοί testers δεν περνούν κανένα.
Πόσους testers μπορώ να προσκαλέσω στο TestFlight;
Μπορείς να προσκαλέσεις έως 100 εσωτερικούς testers και έως 10.000 εξωτερικούς. Οι εσωτερικοί είναι μέλη του λογαριασμού σου στο App Store Connect, χωρίς beta review, και ο καθένας μπορεί να εγκαταστήσει την εφαρμογή σε έως 30 συσκευές. Οι εξωτερικοί προσκαλούνται με e-mail ή με δημόσιο σύνδεσμο, μετά από beta review του πρώτου build. Κάθε build μένει διαθέσιμο για δοκιμές 90 ημέρες.
Μπορώ να δοκιμάσω μια συνδρομή στο TestFlight χωρίς να χρεωθώ;
Ναι, οι αγορές σε build του TestFlight περνούν από το δοκιμαστικό περιβάλλον της Apple: οι testers σου δεν χρεώνονται. Οι ανανεώσεις είναι επιταχυνόμενες: κάθε συνδρομή ανανεώνεται μία φορά την ημέρα, έως έξι φορές μέσα σε μία εβδομάδα, όποια κι αν είναι η πραγματική της διάρκεια. Έλεγξε τουλάχιστον τις τιμές που εμφανίζονται, το ξεκλείδωμα της εφαρμογής και την επαναφορά μετά από επανεγκατάσταση. Το πλήρες στήσιμο περιγράφεται στο συνδρομές in-app στο iOS.
Τι πρέπει να ελέγξω στο TestFlight πριν στείλω την εφαρμογή στην Apple;
Εγκατάστησε ξανά την εφαρμογή από το TestFlight, όπως θα κάνει ο reviewer, και πέρασε όλο το onboarding. Αρνήσου κάθε άδεια, δοκίμασε την αγορά και την επαναφορά και μετά δοκίμασε τη λειτουργία πτήσης, το μικρότερο και το μεγαλύτερο iPhone που υποστηρίζεις. Αν η εφαρμογή ζητά σύνδεση, ετοίμασε έναν demo λογαριασμό στις σημειώσεις του review, με το backend σου σε λειτουργία.