Snapshot (Fastlane) — ουσία, δημιουργία στιγμιότυπων οθόνης και ρύθμιση σε εφαρμογές κινητών

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

Το Snapshot (Fastlane) είναι ένα εργαλείο για αυτόματη δημιουργία στιγμιότυπων οθόνης εφαρμογών iOS σε όλες τις υποστηριζόμενες συσκευές και γλώσσες. Σε αντίθεση με τη μη αυτόματη δημιουργία στιγμιότυπων οθόνης μέσω προσομοιωτή, το Snapshot εκτελεί δοκιμές UI και λαμβάνει στιγμιότυπα σε καθορισμένα σημεία της εφαρμογής. Σύμφωνα με τα επίσημα έγγραφα του Fastlane (2026), το Snapshot μειώνει τον χρόνο προετοιμασίας στιγμιότυπων οθόνης για έκδοση από 4 ώρες σε 15 λεπτά.

Κύρια σημεία

  • Snapshot — εργαλείο Fastlane για αυτόματη δημιουργία στιγμιότυπων οθόνης εφαρμογών iOS μέσω δοκιμών UI σε όλες τις συσκευές και γλώσσες.
  • Το εργαλείο ενσωματώνεται με δοκιμές XCTest UI: ο προγραμματιστής προσθέτει εντολές snapshot() στον κώδικα δοκιμής για λήψη εικόνων σε βασικές οθόνες της εφαρμογής.
  • Το Snapshot υποστηρίζει όλα τα μεγέθη συσκευών iPhone και iPad που απαιτεί το App Store: 6.5, 5.5, 6.7, 12.9 ίντσες και άλλες μορφές οθόνης.
  • Η ρύθμιση γίνεται μέσω του αρχείου Snapfile, όπου καθορίζονται συσκευές, γλώσσες, εντοπισμός και παράμετροι εκκίνησης προσομοιωτή για δημιουργία.
  • Τα αποτελέσματα αποθηκεύονται στον κατάλογο screenshots/, συμβατό με το Deliver — τα στιγμιότυπα οθόνης είναι έτοιμα για μεταφόρτωση στο App Store χωρίς πρόσθετη επεξεργασία.

Τι είναι το Snapshot (Fastlane);

Snapshot (Fastlane) είναι ένα στοιχείο του οικοσυστήματος Fastlane που αυτοματοποιεί τη δημιουργία στιγμιότυπων οθόνης εφαρμογών για το App Store. Εκτελεί δοκιμές UI σε προσομοιωτές iOS, λαμβάνει στιγμιότυπα οθόνης σε καθορισμένες καταστάσεις της εφαρμογής και τα αποθηκεύει σε δομημένο κατάλογο με σωστά ονόματα για κάθε γλώσσα και συσκευή.

Χωρίς το Snapshot, οι προγραμματιστές εκκινούν μη αυτόματα τον προσομοιωτή, ανοίγουν κάθε οθόνη, λαμβάνουν στιγμιότυπο οθόνης μέσω Cmd+S, αλλάζουν γλώσσα και επαναλαμβάνουν τη διαδικασία για όλους τους συνδυασμούς. Η αυτοματοποίηση στιγμιότυπων οθόνης είναι ένα βασικό στοιχείο βελτιστοποίησης ASO, καθώς το App Store απαιτεί ενημερωμένες εικόνες για κάθε νέα έκδοση και η μη αυτόματη ενημέρωση 60+ στιγμιότυπων οθόνης απαιτεί ώρες εργασίας.

Σύμφωνα με το App Store Connect Documentation (2025), οι εφαρμογές με εντοπισμένα στιγμιότυπα οθόνης έχουν 25% περισσότερες μετατροπές σε χώρες-στόχους. Το Snapshot επιτρέπει στις ομάδες να ενημερώνουν οπτικό περιεχόμενο για 32 γλώσσες σε μία εκτέλεση, κάτι που είναι ιδιαίτερα σημαντικό για καμπάνιες μάρκετινγκ που συνδέονται με νέες λειτουργίες εφαρμογής.

Χρησιμοποιήστε το Snapshot σε οποιοδήποτε έργο που δημοσιεύεται στο App Store — είναι ένα τυπικό εργαλείο για ομάδες που επιδιώκουν αυτοματοποίηση της διαδικασίας έκδοσης και βελτίωση ASO.

Πώς το Snapshot δημιουργεί στιγμιότυπα οθόνης

Η διαδικασία δημιουργίας στιγμιότυπων οθόνης στο Snapshot αποτελείται από διάφορα στάδια: προετοιμασία δοκιμών UI, ρύθμιση Snapfile, εκκίνηση προσομοιωτών και συλλογή αποτελεσμάτων. Το Snapshot εκκινεί διαδοχικά κάθε προσομοιωτή για τις καθορισμένες συσκευές και γλώσσες, εκτελεί δοκιμές UI και λαμβάνει εικόνες στα σημεία κλήσης της συνάρτησης snapshot().

Μετά την ολοκλήρωση όλων των δοκιμών, το Snapshot συλλέγει τα στιγμιότυπα οθόνης στον κατάλογο screenshots/[Language]/ με ονόματα που αντιστοιχούν στις απαιτήσεις του App Store. Κάθε στιγμιότυπο οθόνης αποθηκεύεται σε μορφή PNG με ανάλυση που αντιστοιχεί στη συσκευή-στόχο. Το Snapshot δημιουργεί επίσης αναφορά HTML για οπτική επαλήθευση όλων των δημιουργημένων εικόνων.

Ρύθμιση δοκιμών UI για το Snapshot

Για τη λειτουργία του Snapshot, πρέπει να προστεθούν κλήσεις snapshot() στον κώδικα XCTest των δοκιμών UI της εφαρμογής. Η συνάρτηση λαμβάνει στιγμιότυπο οθόνης της τρέχουσας κατάστασης οθόνης τη στιγμή της κλήσης. Ο προγραμματιστής τοποθετεί το snapshot() μετά από κάθε βασική ενέργεια: άνοιγμα οθόνης, εισαγωγή δεδομένων, πλοήγηση σε καρτέλες ή εμφάνιση αποτελεσμάτων.

Παράδειγμα δομής δοκιμής UI: η δοκιμή συνδέεται στην εφαρμογή, καλεί snapshot("01-LoginScreen") για στιγμιότυπο οθόνης σύνδεσης, στη συνέχεια μεταβαίνει στην κύρια οθόνη και καλεί snapshot("02-HomeScreen") για στιγμιότυπο κύριας οθόνης. XCTest είναι το πλαίσιο της Apple για δοκιμές μονάδας και UI εφαρμογών iOS, ενσωματωμένο απευθείας στο Xcode.

objective-c
// Δοκιμή UI για Snapshot
- (void)testScreenshots {
    XCUIApplication *app = [[XCUIApplication alloc] init];
    [app launch];
    
    snapshot(@"01-LoginScreen");
    
    [app.textFields[@"email"] tap];
    [app.textFields[@"email"] typeText:@"user@company.com"];
    [app.buttons[@"Login"] tap];
    
    snapshot(@"02-HomeScreen");
}

Εργασία με γλώσσες και συσκευές

Το Snapshot αλλάζει αυτόματα τη γλώσσα προσομοιωτή για κάθε γλώσσα που καθορίζεται στο Snapfile. Η εφαρμογή εκκινείται με τον αντίστοιχο εντοπισμό και οι δοκιμές UI εκτελούνται σε αυτή τη γλώσσα. Ο εντοπισμός στιγμιότυπων οθόνης είναι ένας κρίσιμος παράγοντας ASO: οι χρήστες στο 75% των περιπτώσεων προτιμούν εφαρμογές με περιεχόμενο στη μητρική τους γλώσσα, συμπεριλαμβανομένων των στιγμιότυπων οθόνης στο App Store.

Για κάθε συσκευή, το Snapshot εκκινεί ξεχωριστό προσομοιωτή με την αντίστοιχη διαγώνιο οθόνης. Υποστηρίζονται όλα τα μεγέθη που απαιτεί το App Store: iPhone 6.5 ίντσες (iPhone 15 Pro Max), 5.5 ίντσες (iPhone 8 Plus), 6.7 ίντσες (iPhone 15 Plus) και iPad 12.9 ίντσες. Προσομοιωτής iOS είναι μια εξομοίωση λογισμικού συσκευής iOS ενσωματωμένη στο Xcode για δοκιμή εφαρμογών χωρίς φυσική συσκευή.

bash
# Δημιουργία στιγμιότυπων οθόνης για όλες τις συσκευές και γλώσσες
fastlane snapshot

# Δημιουργία μόνο για καθορισμένες συσκευές
fastlane snapshot --devices "iPhone 15 Pro Max,iPhone 15"

# Καθαρισμός πριν από τη δημιουργία στιγμιότυπων οθόνης
fastlane snapshot --reinstall_app --erase_simulator

Ρύθμιση του Snapshot μέσω Snapfile

Snapfile είναι το αρχείο ρύθμισης του Fastlane που καθορίζει τις παραμέτρους δημιουργίας στιγμιότυπων οθόνης: λίστα συσκευών, γλώσσες, χρόνο αναμονής και επιλογές εκκίνησης. Το Snapfile αποθηκεύεται στον κατάλογο fastlane και ελέγχεται από έλεγχο έκδοσης μαζί με το έργο, εγγυώμενο ενιαία ρύθμιση για όλα τα μέλη της ομάδας.

ruby
# Snapfile — ρύθμιση στιγμιότυπων οθόνης
devices([
    "iPhone 15 Pro Max",
    "iPhone 15",
    "iPad Pro (12.9-inch)"
])

languages([
    "en-US",
    "ru",
    "de-DE"
])

scheme("MyAppUITests")
output_directory("./screenshots")
clear_previous_screenshots(true)
reinstall_app(true)
erase_simulator(true)

Η παράμετρος clear_previous_screenshots διαγράφει παλιά στιγμιότυπα οθόνης πριν από την έναρξη της δημιουργίας — αυτό αποτρέπει τη συσσώρευση παλαιών εικόνων στον κατάλογο εξόδου. Το reinstall_app επανεγκαθιστά την εφαρμογή στον προσομοιωτή πριν από κάθε εκτέλεση, εγγυώμενο καθαρή συνεδρία χωρίς επίδραση προηγούμενων δοκιμών στη νέα δημιουργία.

Η παράμετρος erase_simulator καθαρίζει το περιεχόμενο του προσομοιωτή πριν από την έναρξη δοκιμών — συμπεριλαμβανομένων της προσωρινής μνήμης, ρυθμίσεων και δεδομένων προηγούμενων συνεδριών. Αυτό είναι ιδιαίτερα σημαντικό για δοκιμές που ελέγχουν την εισαγωγή ή την πρώτη εκκίνηση της εφαρμογής. Το Snapshot υποστηρίζει επίσης τις παραμέτρους ios_version για καθορισμό έκδοσης iOS στον προσομοιωτή και stop_after_first_error για διακοπή δημιουργίας στο πρώτο σφάλμα δοκιμής UI.

Για έργα με SwiftUI, είναι διαθέσιμη η παράμετρος use_simulator_for_language, η οποία διαχειρίζεται την εναλλαγή γλώσσας μέσω ρυθμίσεων προσομοιωτή αντί να αλλάζει την περιοχή συστήματος. Το Snapshot υποστηρίζει επίσης launch_arguments για μεταβίβαση πρόσθετων ορισμάτων κατά την εκκίνηση της εφαρμογής — χρήσιμο για δοκιμές με διαφορετικές ρυθμίσεις παρασκηνίου ή δοκιμές A/B.

Εντολές Snapshot για δημιουργία εικόνων

Η διεπαφή του Snapshot περιλαμβάνει βασικές εντολές για εκκίνηση δημιουργίας και προηγμένες σημαίες για ακριβή έλεγχο της διαδικασίας. Η κύρια εντολή fastlane snapshot εκτελεί τον πλήρη κύκλο δημιουργίας στιγμιότυπων οθόνης βάσει της ρύθμισης από το Snapfile.

Γρήγορη δημιουργία και φιλτράρισμα

Η εντολή fastlane snapshot --devices "iPhone 15" δημιουργεί στιγμιότυπα οθόνης μόνο για τις καθορισμένες συσκευές, αγνοώντας τις υπόλοιπες από το Snapfile. Το --languages "en-US,ru" φιλτράρει τις γλώσσες για δημιουργία. Ο συνδυασμός αυτών των σημαιών είναι χρήσιμος για γρήγορο έλεγχο στιγμιότυπων οθόνης σε μία συσκευή και γλώσσα χωρίς τον πλήρη κύκλο δημιουργίας, ο οποίος μπορεί να διαρκέσει έως 30 λεπτά για 5 συσκευές και 10 γλώσσες.

bash
# Γρήγορη δημιουργία για μία συσκευή
fastlane snapshot --devices "iPhone 15" --languages "en-US"

# Δημιουργία με επανεγκατάσταση εφαρμογής
fastlane snapshot --reinstall_app --erase_simulator

# Δημιουργία με αναφορά HTML
fastlane snapshot --output_directory "./build/screenshots"

Η σημαία --output_directory αλλάζει τον κατάλογο αποθήκευσης αποτελεσμάτων. Από προεπιλογή, το Snapshot αποθηκεύει στιγμιότυπα οθόνης στο fastlane/screenshots. Για ενσωμάτωση με το Deliver, καθορίστε κατάλογο που ταιριάζει με την αναμενόμενη δομή Deliverfile — αυτό επιτρέπει την άμεση μεταφορά στιγμιότυπων οθόνης στη διαδικασία δημοσίευσης χωρίς μη αυτόματη αντιγραφή αρχείων μεταξύ φακέλων.

Παράμετρος SnapshotΣκοπόςΠαράδειγμα
devicesΛίστα συσκευών για δημιουργίαiPhone 15, iPad Pro
languagesΛίστα γλωσσών εντοπισμούen-US, ru, de-DE
reinstall_appΕπανεγκατάσταση εφαρμογής πριν από δοκιμέςtrue / false
erase_simulatorΚαθαρισμός προσομοιωτή πριν από εκκίνησηtrue / false
clear_previousΔιαγραφή παλιών στιγμιότυπων οθόνηςtrue / false

Ενσωμάτωση του Snapshot σε αγωγό CI/CD

Snapshot σε CI/CD είναι η αυτόματη δημιουργία στιγμιότυπων οθόνης σε κάθε commit έκδοσης. Το Snapshot εκτελείται πριν από το στάδιο Deliver για να εγγυηθεί ότι τα στιγμιότυπα οθόνης στο App Store αντιστοιχούν στην τρέχουσα έκδοση της εφαρμογής και δεν περιέχουν παλαιά στοιχεία διεπαφής από προηγούμενες εκδόσεις.

Για τη λειτουργία του Snapshot σε CI απαιτείται Xcode με εγκατεστημένους προσομοιωτές iOS. Σε περιβάλλον CI, το Snapshot χρησιμοποιεί προσομοιωτές από το Xcode που φορτώνονται εκ των προτέρων στον runner. Το GitHub Actions παρέχει εικόνες με προεγκατεστημένο Xcode και προσομοιωτές iOS για εκτέλεση δοκιμών UI χωρίς πρόσθετη ρύθμιση.

bash
# Εκτέλεση Snapshot σε περιβάλλον CI
fastlane snapshot --skip_open_summary \

      --output_directory "$CI_PROJECT_DIR/screenshots"

# Αποθήκευση στιγμιότυπων οθόνης ως τεχνουργήματα CI
cp -R "screenshots/" "$CI_PROJECT_DIR/artifacts/"

Η παράμετρος --skip_open_summary απενεργοποιεί το άνοιγμα της αναφοράς HTML μετά τη δημιουργία — σε περιβάλλον CI η γραφική διεπαφή δεν είναι διαθέσιμη. Τα αποτελέσματα δημιουργίας αποθηκεύονται σε κατάλογο που μεταβιβάζεται ως τεχνούργημα της εργασίας CI και στη συνέχεια χρησιμοποιείται από το Deliver για μεταφόρτωση στο App Store μαζί με την έκδοση.

Για επιτάχυνση του αγωγού CI, χρησιμοποιήστε παράλληλη δημιουργία στιγμιότυπων οθόνης μέσω concurrent_simulators — μια παράμετρος Snapfile που εκκινεί πολλαπλούς προσομοιωτές ταυτόχρονα. Αυτό μειώνει τον χρόνο δημιουργίας στιγμιότυπων οθόνης για 5 συσκευές και 10 γλώσσες από 40 λεπτά σε 15 λεπτά χρησιμοποιώντας 4 παράλληλα νήματα.

Συνήθη σφάλματα κατά την εργασία με το Snapshot

Κατά τη χρήση του Snapshot, οι προγραμματιστές συναντούν συχνότερα σφάλματα που σχετίζονται με αστάθεια δοκιμών UI, προβλήματα προσομοιωτών και εσφαλμένη ρύθμιση συσκευών. Η διάγνωση σφαλμάτων του Snapshot ξεκινά με ανάλυση της αναφοράς HTML, η οποία περιέχει στιγμιότυπα οθόνης κάθε βήματος και πληροφορίες για αποτυχημένες δοκιμές.

Το σφάλμα «Failed to build scheme MyAppUITests» εμφανίζεται όταν το σχήμα δοκιμών UI δεν έχει ρυθμιστεί για δημιουργία. Λύση: βεβαιωθείτε ότι στο Xcode έχει δημιουργηθεί ξεχωριστό Scheme για δοκιμές UI και ότι η επιλογή Shared είναι ενεργοποιημένη για πρόσβαση από γραμμή εντολών. Xcode Scheme είναι μια ρύθμιση δημιουργίας, δοκιμής και εκκίνησης εφαρμογής που καθορίζει το σύνολο στόχων και παραμέτρων για κάθε ενέργεια.

Το σφάλμα «No simulators found matching...» υποδεικνύει απουσία προσομοιωτή με τον καθορισμένο τύπο συσκευής ή έκδοση iOS. Λύση: εκτελέστε xcrun simctl create για δημιουργία προσομοιωτή ή καθορίστε υπάρχουσα συσκευή από τη λίστα xcrun simctl list. xcrun simctl είναι το εργαλείο γραμμής εντολών Xcode για διαχείριση προσομοιωτών iOS: δημιουργία, διαγραφή, εκκίνηση και διάγνωση.

Στο σφάλμα «UI test failure» η δοκιμή UI δεν περνά σε μία από τις γλώσσες ή συσκευές. Λύση: εκτελέστε το Snapshot με τη σημαία --stop_after_first_error για διακοπή στο πρώτο σφάλμα, αναλύστε το στιγμιότυπο οθόνης στην αναφορά HTML και διορθώστε τη δοκιμή. Συχνή αιτία είναι το διαφορετικό μήκος κειμένου σε διαφορετικές γλώσσες, λόγω του οποίου στοιχεία διεπαφής επικαλύπτονται ή εξέρχονται από τα όρια οθόνης.

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

Ποιες συσκευές iOS υποστηρίζει το Snapshot;

Το Snapshot υποστηρίζει όλες τις συσκευές από την οικογένεια iPhone και iPad, συμπεριλαμβανομένων των iPhone 15 Pro Max (6.7 ίντσες), iPhone 15 (6.1 ίντσες), iPad Pro 12.9 ίντσες και iPad mini. Για κάθε συσκευή, το Snapshot φορτώνει τα αντίστοιχα skins προσομοιωτή από το Xcode, εγγυώμενο ακριβή ανάλυση οθόνης.

Απαιτούνται πραγματικές συσκευές για τη λειτουργία του Snapshot;

Όχι, το Snapshot λειτουργεί αποκλειστικά με προσομοιωτές iOS από το Xcode. Πραγματικές συσκευές δεν απαιτούνται ούτε υποστηρίζονται — όλα τα στιγμιότυπα οθόνης δημιουργούνται στο περιβάλλον προσομοιωτή που παρέχει πανομοιότυπη ανάλυση και αναπαραγωγή χρωμάτων για τις απαιτήσεις του App Store.

Πώς το Snapshot χειρίζεται τον εντοπισμό κειμένου σε στιγμιότυπα οθόνης;

Το Snapshot αλλάζει τη γλώσσα προσομοιωτή πριν από την εκτέλεση δοκιμών UI για κάθε γλώσσα από το Snapfile. Η εφαρμογή εμφανίζεται στην αντίστοιχη γλώσσα μέσω των ρυθμίσεων εντοπισμού συστήματος. Οι δοκιμές UI χρησιμοποιούν εντοπισμένες συμβολοσειρές μέσω NSLocalizedString, εγγυώμενες σωστό κείμενο σε όλα τα στιγμιότυπα οθόνης.

Μπορούν να δημιουργηθούν στιγμιότυπα οθόνης για εφαρμογές macOS;

Ναι, το Snapshot υποστηρίζει εφαρμογές macOS από την έκδοση Fastlane 2.200. Για macOS, καθορίστε την πλατφόρμα στο Snapfile μέσω της παραμέτρου app_platform("macOS"). Το Snapshot εκτελεί δοκιμές UI σε macOS και δημιουργεί στιγμιότυπα οθόνης σύμφωνα με τις απαιτήσεις του Mac App Store.

Σε τι διαφέρει το Snapshot από ένα συνηθισμένο στιγμιότυπο οθόνης μέσω Cmd+S;

Το μη αυτόματο στιγμιότυπο οθόνης απαιτεί μη αυτόματο άνοιγμα κάθε οθόνης, αλλαγή γλώσσας, αλλαγή συσκευής — περίπου 60 ενέργειες για πλήρες σύνολο. Το Snapshot αυτοματοποιεί ολόκληρη τη διαδικασία: αλλάζει γλώσσες και συσκευές, εκτελεί δοκιμές UI και αποθηκεύει στιγμιότυπα οθόνης με σωστά ονόματα για το App Store σε 15 λεπτά.

Σύνοψη

  • Snapshot — εργαλείο Fastlane για αυτόματη δημιουργία στιγμιότυπων οθόνης εφαρμογών iOS μέσω δοκιμών UI XCTest σε όλες τις συσκευές και γλώσσες.
  • Ο προγραμματιστής προσθέτει κλήσεις snapshot() στον κώδικα δοκιμών UI σε βασικά σημεία της εφαρμογής — το Snapshot λαμβάνει εικόνες σε αυτά τα σημεία.
  • Η ρύθμιση μέσω Snapfile καθορίζει τη λίστα συσκευών, γλωσσών και παραμέτρων προσομοιωτή: devices, languages, reinstall_app και erase_simulator.
  • Τα αποτελέσματα αποθηκεύονται στον κατάλογο screenshots/[Language]/ σε μορφή συμβατή με το Deliver για άμεση μεταφόρτωση στο App Store.
  • Η ενσωμάτωση σε CI/CD επιτρέπει αυτόματη δημιουργία φρέσκων στιγμιότυπων οθόνης πριν από κάθε έκδοση με παράλληλους προσομοιωτές για επιτάχυνση της διαδικασίας.
  • Τα συνήθη σφάλματα του Snapshot σχετίζονται με ασταθείς δοκιμές UI σε διαφορετικές γλώσσες, έλλειψη προσομοιωτών στο Xcode ή εσφαλμένη ρύθμιση Scheme.

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

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

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

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