portaldacalheta.pt
  • Κύριος
  • Επιστήμη Δεδομένων Και Βάσεις Δεδομένων
  • Κατανεμημένες Ομάδες
  • Ευκίνητο Ταλέντο
  • Κερδοφορία & Αποδοτικότητα
Κινητό

Επεξήγηση συνεχούς ενοποίησης iOS με διακομιστή Xcode



Εισαγωγή

Πριν από το Xcode 9, η χρήση εργαλείων συνεχούς ενοποίησης της Apple ήταν μια κουραστική και περίπλοκη διαδικασία που απαιτούσε την αγορά και εγκατάσταση μιας πρόσθετης εφαρμογής macOS Server. Αυτό οδήγησε πολλούς προγραμματιστές να εγκαταλείψουν την ιδέα της συνεχούς ενσωμάτωσης για τα έργα τους iOS ή να καταφύγουν σε λύσεις τρίτων με πολύ διαφορετικά επίπεδα επιτυχίας.

Ωστόσο, μετά την κυκλοφορία του Xcode 9.0 τον Σεπτέμβριο του 2017, η διαδικασία απλοποιήθηκε πολύ, συμπεριλαμβανομένης της επιλογής αυτόματης υπογραφής κώδικα, και τώρα ενσωματώνεται πλήρως στο Xcode. Επομένως, δεν απαιτεί πρόσθετες εφαρμογές ή εργαλεία.



Ενώ λύσεις τρίτων όπως Λωρίδα ταχείας κυκλοφορίας , Bluepill , κ.λπ. έχουν μεγάλη βοήθεια και μπορούν να κάνουν πολλή σκληρή δουλειά για εσάς, αυτό το άρθρο θα διερευνήσει τις δυνατότητες χρήσης εργαλείων Xcode και Apple μόνο για συνεχείς ανάγκες ολοκλήρωσης . Θα χρησιμοποιούμε επίσης χειροκίνητη υπογραφή κώδικα, καθώς αυτό φαίνεται συχνά να αποτελεί πρόβλημα για πολλούς ανθρώπους, και η αυτόματη υπογραφή τείνει επίσης να μην είναι η βέλτιστη λύση όταν πρόκειται για πολλαπλές διαμορφώσεις build.



Σημείωση: Αυτό το άρθρο βασίζεται στο Xcode 9.4.1 και επικεντρώνεται στην ανάπτυξη εφαρμογών iOS, αλλά μεγάλο μέρος του ισχύει για Xcode 10 (επί του παρόντος διατίθεται ως έκδοση beta 5) και ανάπτυξη εφαρμογών macOS.



Ρύθμιση διακομιστή Xcode

Μαζί με την απλοποίηση της πραγματικής διαδικασίας ολοκλήρωσης, το Xcode 9 απλοποίησε επίσης τη διαδικασία εγκατάστασης του Xcode Server.

Εκκινήστε την εφαρμογή Xcode στον υπολογιστή macOS που έχει οριστεί ως διακομιστής CI και ανοίξτε τις Προτιμήσεις.



Μεταβείτε στην τελευταία καρτέλα, που ονομάζεται Διακομιστής & Bots .

Εργαλεία συνεχούς ενοποίησης: Στιγμιότυπο οθόνης της καρτέλας Servers & Bots



Ενεργοποιήστε τις δυνατότητες του Xcode Server κάνοντας κλικ στο διακόπτη στην επάνω δεξιά γωνία. Στη συνέχεια, θα σας ζητηθεί να επιλέξετε έναν χρήστη για εκτέλεση και εκτέλεση σεναρίων build σε αυτόν τον υπολογιστή. Είναι πιθανώς καλή ιδέα να έχετε έναν αποκλειστικό χρήστη για αυτόν τον σκοπό, αντί να χρησιμοποιείτε έναν προϋπάρχοντα.

Λάβετε υπόψη ότι αυτός ο χρήστης πρέπει να συνδεθεί στο σύστημα για να εκτελεστεί οποιοδήποτε bot Xcode. Αφού συνδεθείτε, θα δείτε έναν πράσινο κύκλο δίπλα στο όνομα χρήστη.



Xcode Server και Bots μετά την επιτυχή σύνδεση

Αυτό είναι! Ας ρίξουμε μια πιο προσεκτική ματιά στα Xcode bots.



Πώς να ρυθμίσετε τα Xcode Bots

Τώρα είστε έτοιμοι να ξεκινήσετε τη ρύθμιση παραμέτρων bots Xcode για εκτέλεση σε αυτόν τον διακομιστή. Αυτό μπορεί να γίνει σε οποιοδήποτε μηχάνημα ανάπτυξης συνδεδεμένο στο ίδιο δίκτυο με το διακομιστή.

ροή git vs ροή github

Ανοίξτε το Xcode στο μηχάνημά σας ανάπτυξης και κάντε κλικ στο Xcode> Προτιμήσεις από το επάνω μενού. Στη συνέχεια, πηγαίνετε στο Λογαριασμοί και κάντε κλικ στο + εικονίδιο στην κάτω αριστερή γωνία. Επιλέξτε Xcode Server από το παράθυρο διαλόγου που εμφανίζεται.



Στιγμιότυπο οθόνης επιλογής τύπου λογαριασμού

Για να δημιουργήσετε ένα bot, απλώς ανοίξτε το έργο σας σε Xcode και επιλέξτε το Προϊόν> Δημιουργία Bot… επιλογή από το επάνω μενού. Η ρύθμιση bot έχει πολλά βήματα και θα τα εξερευνήσουμε στις επόμενες ενότητες.

Αυτοματοποίηση διανομής εφαρμογών

Μία από τις πιο συχνές εφαρμογές του αυτοματισμού δημιουργίας εφαρμογών iOS είναι η διαμόρφωση ενός bot για να ανεβάζει μια εφαρμογή σε μια πλατφόρμα διανομής iOS όπως το TestFlight, το Fabric κ.λπ.

Όπως εξήγησα νωρίτερα, αυτό το άρθρο θα διερευνήσει μόνο τη μεταφόρτωση στο App Store Connect και τη λήψη απευθείας από τον Xcode Server, καθώς αυτά είναι τα εγγενή εργαλεία της Apple για διανομή εφαρμογών iOS.

App Store Connect Distribution χρησιμοποιώντας Xcode

Πριν διαμορφώσετε ένα bot, βεβαιωθείτε ότι έχετε μια εγγραφή εφαρμογής App Store Connect που να ταιριάζει με το αναγνωριστικό δέσμης του έργου ανάπτυξης εφαρμογών σας. Αξίζει επίσης να σημειωθεί ότι κάθε έκδοση πρέπει να έχει ένα μοναδικό αναγνωριστικό που να αποτελείται από την έκδοση και τον αριθμό έκδοσης. Θα διερευνήσουμε πώς να διασφαλίσουμε ότι πληρούνται αυτές οι προϋποθέσεις όταν συζητούμε αργότερα τις ρυθμίσεις bot Xcode.

Βήμα 1: Η ρύθμιση της σωστής διαμόρφωσης build είναι το κρίσιμο βήμα για να πάρετε αυτό που θέλετε. Βεβαιωθείτε ότι έχετε επιλέξει το σχήμα και τη διαμόρφωση που παράγουν την εφαρμογή που θέλετε να ανεβάσετε στο App Store Connect. Αυτό περιλαμβάνει τη διασφάλιση ότι η διαμόρφωση build χρησιμοποιεί το κατάλληλο αναγνωριστικό πακέτου που είναι καταχωρημένο στην πύλη προγραμματιστών της Apple της ομάδας σας (αυτό χρησιμοποιείται για την υπογραφή κώδικα) καθώς και στην πύλη App Store Connect (χρησιμοποιείται για αυτόματη μεταφόρτωση της εφαρμογής) .

Βήμα 2: Ενώ είμαστε ακόμα στην καρτέλα 'Διαμόρφωση', πρέπει να καθορίσουμε τις επιλογές εξαγωγής. Θα εξερευνήσουμε τη λίστα ιδιοτήτων επιλογών εξαγωγής, οπότε βεβαιωθείτε ότι έχει επιλεγεί το 'Use Custom Export Options Plist'.

Βήμα 3: Τώρα είναι η ώρα να κάνουμε τη λίστα ιδιοτήτων επιλογών εξαγωγής. Μια πλήρης λίστα κλειδιών που θα χρησιμοποιηθεί σε αυτό το αρχείο είναι διαθέσιμη αν εισαγάγετε xcodebuild --help, αλλά θα διερευνήσουμε αυτά που χρησιμοποιούνται σε αυτήν τη διαμόρφωση bot εδώ:

  • compileBitcode - Ο κωδικός bit είναι η προσωρινή μορφή εξόδου της Apple για τον πηγαίο κώδικα της εφαρμογής. Με άλλα λόγια, είναι η μορφή με την οποία ο πηγαίος κώδικας μετατρέπεται πριν μεταγλωττιστεί σε κώδικα μηχανήματος για μια συγκεκριμένη αρχιτεκτονική. Στόχος του είναι να έχει ένα κοντέινερ κώδικα που μπορεί να βελτιστοποιηθεί περαιτέρω εάν πραγματοποιηθεί μια βελτιστοποίηση στο σύνολο εντολών και επίσης να είναι σε θέση να το μεταγλωττίσει σε μελλοντικές αρχιτεκτονικές από την ίδια μορφή. Ωστόσο, αυτό δεν επηρεάζει την εφαρμογή σας. Εναπόκειται σε εσάς να αποφασίσετε εάν θέλετε να το ενεργοποιήσετε ή όχι.
  • method - Αυτό το επιχείρημα καθορίζει το είδος του προϊόντος που εξάγετε. Η Apple διακρίνει τα προϊόντα από το καθορισμένο κοινό τους— ανάπτυξη σας επιτρέπει να το εγκαταστήσετε μόνο σε συσκευές που καθορίζονται στο προφίλ παροχής, επιχείρηση επιτρέπει σε όλους να το εγκαταστήσουν, αλλά πρέπει να εμπιστεύονται ρητά αυτό το προφίλ ανάπτυξης πριν από την εκτέλεση της εφαρμογής και App Store είναι για τη διανομή του στο App Store ή στο App Store Connect, οπότε θα χρησιμοποιήσουμε αυτήν την τιμή.
  • provisioningProfiles - Αυτό είναι αυτονόητο. Αλλά υπάρχουν μερικά πράγματα που πρέπει να σημειωθούν εδώ: Τα προφίλ παροχής στη λίστα ιδιοτήτων επιλογών εξαγωγής είναι ένα λεξικό όπου a κλειδί αντιστοιχεί στο αναγνωριστικό δέσμης ενός προϊόντος και αξία αντιστοιχεί στο όνομα του προφίλ παροχής που χρησιμοποιείται για την κωδικοποίηση του.
  • signingCertificate - Ένα άλλο αυτονόητο επιχείρημα. Η τιμή αυτού του πεδίου μπορεί να είναι πλήρες όνομα πιστοποιητικού ή κατακερματισμός SHA-1.
  • teamID - Ένα άλλο αυτονόητο επιχείρημα. Αυτό είναι το αναγνωριστικό διάρκειας 10 χαρακτήρων που εξέδωσε η Apple στον οργανισμό σας κατά την εγγραφή σας στο πρόγραμμα Apple Developer.
  • uploadBitcode - Εάν θέλετε να ανεβάσετε bitcode (αν έχετε επιλέξει να μεταγλωττίσετε), ώστε να μπορεί να χρησιμοποιηθεί στο AppStore Connect για τη δημιουργία νέων βελτιστοποιημένων builds ή builds για μελλοντικές αρχιτεκτονικές.
  • uploadSymbols - Μεταφορτώνει τα σύμβολα εντοπισμού σφαλμάτων, ώστε να μπορείτε να λάβετε μια σημαντική αναφορά σφαλμάτων και όχι απλώς μια απόρριψη μνήμης και στοίβα συναρμολόγησης

Τώρα λοιπόν, η λίστα ιδιοτήτων των επιλογών εξαγωγής μπορεί να έχει την εξής μορφή:

compileBitcode method app-store provisioningProfiles com.bundle.id ProvisioningProfileName signingCertificate Signing Certificate Exact Name or SHA-1 hash value teamID ?????????? uploadBitcode uploadSymbols

Βήμα 4: Επιλέξτε το .plist που δημιουργήσατε ως λίστα ιδιοτήτων επιλογών εξαγωγής.

η αρχή gestalt της εγγύτητας αναφέρεται στην ιδέα ότι

Βήμα 5: Στη συνέχεια βρίσκεται η καρτέλα 'Πρόγραμμα' - ρυθμίστε τη σύμφωνα με τις προτιμήσεις σας.

Βήμα 6: Στην καρτέλα 'Υπογραφή', βεβαιωθείτε ότι έχετε αποεπιλέξει την επιλογή 'Να επιτρέπεται στο Xcode Server να διαχειρίζεται τα πιστοποιητικά και τα προφίλ μου' και να ανεβάζετε ένα αντίστοιχο πιστοποιητικό υπογραφής και προφίλ παροχής από εσάς, στο Πιστοποιητικά & προφίλ σελίδα.

Βήμα 7: ο συσκευές Η καρτέλα πρέπει να παραμείνει όπως είναι δεδομένου ότι ανεβάζουμε την εφαρμογή και όχι τη δοκιμάζουμε.

Βήμα 8: ο Επιχειρήματα Η καρτέλα σάς επιτρέπει να ορίζετε ρητά ορίσματα xcodebuild ή μεταβλητές περιβάλλοντος που μπορούν να χρησιμοποιηθούν στα σενάρια έκδοσης ή προ-ολοκλήρωσης και μετά την ολοκλήρωση.

Βήμα 9: Τέλος, φτάνουμε στο Ενεργοποιητές tab, η οποία είναι επίσης η τελευταία καρτέλα στη διαμόρφωση του bot συνεχούς ολοκλήρωσης Xcode. Αυτό είναι το πιο ισχυρό εργαλείο στο οπλοστάσιο του Xcode Server. Για αρχάριους, θέλω να προσθέσω τις ακόλουθες δύο εντολές ως σενάριο πριν από την ολοκλήρωση:

#!/bin/sh set printenv

Η πρώτη εκτυπώνει όλες τις μεταβλητές που χρησιμοποιεί ο Xcode Server και τις τιμές τους στην τρέχουσα ολοκλήρωση. Το δεύτερο εκτυπώνει όλες τις μεταβλητές περιβάλλοντος και τις τιμές τους. Όπως ήταν αναμενόμενο, αυτό μπορεί να είναι χρήσιμο για τον εντοπισμό σφαλμάτων των σεναρίων σας, γι 'αυτό το ονομάζω σωστά 'πληροφορίες εντοπισμού σφαλμάτων'.

Θυμηθείτε ότι αναφέραμε ότι πρέπει να διασφαλίσουμε ότι κάθε έκδοση που μεταφορτώνεται στο App Store Connect πρέπει να έχει μια μοναδική έκδοση build και ζεύγος αριθμών build. Μπορούμε να χρησιμοποιήσουμε το ενσωματωμένο εργαλείο PlistBuddy, αλλά χρειαζόμαστε επίσης έναν τρόπο να έχουμε έναν μοναδικό αριθμό κατασκευής. Ένα πράγμα που υπάρχει πάντα κατά την ενσωμάτωση του Xcode Server - και είναι επίσης βολικά μοναδικό - είναι ο αριθμός ενοποίησης, καθώς αυξάνεται αυτόματα. Θα δημιουργήσουμε ένα άλλο σενάριο πριν από την ολοκλήρωση, με το όνομα 'set build number' με τα ακόλουθα περιεχόμενα για να διασφαλίσουμε ότι έχουμε έναν μοναδικό αριθμό build κάθε φορά:

#!/bin/sh buildNumber=$(/usr/libexec/PlistBuddy -c 'Print CFBundleVersion' '${PROJECT_DIR}/${INFOPLIST_FILE}') buildNumber=$XCS_INTEGRATION_NUMBER /usr/libexec/PlistBuddy -c 'Set :CFBundleVersion $buildNumber' '${PROJECT_DIR}/${INFOPLIST_FILE}'

Εάν χρησιμοποιείτε CocoaPods και έχετε επιλέξει να μην δεσμεύσετε τον κατάλογο Pods στο DVCS σας, θα πρέπει επίσης να συμπεριλάβετε ένα σενάριο προ-ολοκλήρωσης με τα ακόλουθα περιεχόμενα:

#!/bin/sh cd $XCS_PRIMARY_REPO_DIR pod install

Βήμα 10: Έχουμε σχεδόν τελειώσει, αλλά δεν έχουμε ορίσει πουθενά ότι θέλουμε να ανεβάσουμε το build στο AppStore Connect ή σε ποιον λογαριασμό. Για το σκοπό αυτό, θα προσθέσουμε σενάριο μετά την ολοκλήρωση και ένα άλλο ενσωματωμένο εργαλείο, που ονομάζεται Application Loader. Βάλτε τα ακόλουθα στο σενάριο:

#!/bin/sh /Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Support/altool --upload-app -f $XCS_PRODUCT -u $TESTFLIGHT_USERNAME -p $TESTFLIGHT_PASSWORD

Το $XCS_PRODUCT είναι μια μεταβλητή Xcode Server και περιέχει τη διαδρομή προς την εφαρμογή που δημιουργήθηκε κατά την τρέχουσα ολοκλήρωση. Ωστόσο, το $TESTFLIGHT_USERNAME και $TESTFLIGHT_PASSWORD δεν είναι ούτε μεταβλητές συστήματος ούτε διακομιστή Xcode. Αυτά πρέπει να ρυθμιστούν από εσάς και να έχουν την αξία του Apple ID και του κωδικού πρόσβασής σας. Δυστυχώς, η Apple διέκοψε την υποστήριξη για τη δημιουργία κλειδιού API για τη μεταφόρτωση του AppStore Connect. Δεδομένου ότι πρόκειται για εμπιστευτικές πληροφορίες, είναι η καλύτερη πρακτική να το ρυθμίσετε απευθείας στο διακομιστή Mac (υποθέτοντας ότι είναι δικό σας) ως μεταβλητή περιβάλλοντος και όχι στη διαμόρφωση bot Xcode Server.

Διανομή διακομιστή Xcode

Το bot διανομής Xcode Server χρησιμοποιεί στην πραγματικότητα την ίδια διαμόρφωση με αυτήν για τη διανομή App Store Connect, με εξαίρεση τα σενάρια μετά την ολοκλήρωση. Ωστόσο, η λήψη της εφαρμογής και η εγκατάστασή της μπορεί να είναι δύσκολη. Πρέπει ακόμη να διασφαλίσετε ότι το προφίλ παροχής με το οποίο έχετε υπογράψει την εφαρμογή σας επιτρέπει την εγκατάσταση της εφαρμογής στη συσκευή που χρησιμοποιείτε.

Με αυτήν τη θέση, θα πρέπει να ανοίξετε το Safari στη συσκευή σας iOS και να μεταβείτε στον πίνακα ελέγχου ιστού του διακομιστή Xcode του διακομιστή σας. Για παράδειγμα, εάν το όνομα του διακομιστή σας είναι 'διακομιστής Mac' μπορείτε να το βρείτε στο 'mac-server-name.local / xcode' εάν βρίσκεστε στο ίδιο δίκτυο με τον διακομιστή. Εκεί, θα βρείτε μια λίστα με όλα τα bots Xcode σας και τα στατιστικά στοιχεία των πιο πρόσφατων ενσωματώσεών τους.

Επιλέξτε αυτό που έχει δημιουργήσει την εφαρμογή που θέλετε να κατεβάσετε. Στην ακόλουθη οθόνη, θα έχετε δύο κουμπιά— Εγκαθιστώ και Προφίλ . Εάν αυτή είναι η πρώτη φορά που κάνετε λήψη από αυτόν τον διακομιστή, πρέπει να κάνετε κλικ Προφίλ για να προσθέσετε το πιστοποιητικό του στη λίστα αξιόπιστων πηγών. Στη συνέχεια, κάντε κλικ στο Εγκαθιστώ στην ίδια σελίδα και θα σας υποδεχτεί με το παράθυρο διαλόγου επιβεβαίωσης iOS 'Είστε βέβαιοι ότι θέλετε να εγκαταστήσετε * στη συσκευή σας;' Επιβεβαιώστε το κάνοντας κλικ Ναί και η εφαρμογή σας θα εγκατασταθεί και θα εκτελείται από την αρχική οθόνη.

Στιγμιότυπο οθόνης των επιλογών εγκατάστασης εφαρμογής

Για iOS 10.3 και μεταγενέστερη έκδοση , ένας λόγος για τον οποίο μπορεί να αποτύχει με το 'Δεν είναι δυνατή η σύνδεση στο * .local' είναι ότι το πιστοποιητικό αυτο-υπογραφής πρέπει να είναι αξιόπιστο με μη αυτόματο τρόπο στις Ρυθμίσεις στη δοκιμαστική συσκευή.

Ακολουθήστε αυτά τα βήματα:

Βήμα 1: Εγκαταστήστε αυτο-υπογεγραμμένα πιστοποιητικά από τη σελίδα bot του διακομιστή Xcode στο iPhone σας.

Βήμα 2: Μεταβείτε στα iPhone Ρυθμίσεις> Γενικά> Σχετικά> Ρυθμίσεις αξιοπιστίας πιστοποιητικού .

Βήμα 3: Βρείτε τα αυτο-υπογεγραμμένα πιστοποιητικά του διακομιστή σας στην ενότητα ΕΝΕΡΓΟΠΟΙΗΣΗ ΠΛΗΡΗΣ ΕΜΠΙΣΤΟΣΥΝΗΣ ΓΙΑ ΠΙΣΤΟΠΟΙΗΤΙΚΑ ΡΟΖ και ενεργοποιήστε το διακόπτη.

Βήμα 4: Επιστρέψτε στη σελίδα ενσωμάτωσης bot στον Xcode Server, κάντε κλικ στο Εγκαθιστώ .

Αυτόματος έλεγχος εφαρμογών Xcode Server

Μια άλλη εξαιρετική χρήση του Xcode Server είναι η αυτόματη δοκιμή εφαρμογών, είτε πρόκειται για δοκιμή μονάδας είτε UI. Για να το κάνετε αυτό, πρέπει να ρυθμίσετε τον κατάλληλο στόχο για το έργο σας. Δηλαδή, πρέπει να έχετε έναν στόχο που εκτελεί δοκιμές μονάδας ή διεπαφής χρήστη, ανάλογα με τον στόχο σας.

Η διαδικασία εγκατάστασης είναι ίδια με την προηγούμενη, αλλά θα επιλέξουμε διαφορετικές επιλογές. Η πρώτη σημαντική διαφορά είναι στο Διαμόρφωση αυτί. Προφανώς, θα επιλέξουμε τα πλαίσια 'Ανάλυση' και 'Δοκιμή', αφού αυτός είναι ο πρωταρχικός μας στόχος. Θα συνιστούσα επίσης να μην αρχειοθετήσετε ούτε να εξαγάγετε το προϊόν με αυτό το bot. Είναι δυνατό να επιτευχθούν δοκιμές και διανομή με την ίδια διαμόρφωση bot. Ωστόσο, αυτά τα δύο σενάρια διαφέρουν ως προς την παραγωγή τους καθώς και το πρόγραμμά τους. Η διανομή εκτελείται συχνά στο τέλος του κύκλου.

Είτε εργάζεστε στο Scrum είτε στο Kanban ή σε κάποιο άλλο πλαίσιο, θα πρέπει να υπάρχει ένας προκαθορισμένος κύκλος βάσει χρόνου ή γεγονότων στο τέλος του οποίου θα έπρεπε να έχετε εξαγάγει και χρησιμοποιήσιμο προϊόν. Από την άλλη πλευρά, θα πρέπει να εκτελέσετε το bot δοκιμών σας σε κάθε δέσμευση, καθώς είναι η πρώτη σας γραμμή άμυνας έναντι παλινδρόμησης. Δεδομένου ότι το bot δοκιμών προφανώς εκτελείται συχνότερα, η συγχώνευση αυτών των δύο bot σε ένα θα μπορούσε να εξαντλήσει γρήγορα το χώρο στο δίσκο στον διακομιστή σας. Και θα χρειαζόταν επίσης κάθε ολοκλήρωση περισσότερο χρόνο για να ολοκληρωθεί.

Με αυτόν τον τρόπο, προχωράμε στην καρτέλα 'Πρόγραμμα' και το έχουμε ήδη αντιμετωπίσει στην προηγούμενη παράγραφο. Έτσι, το επόμενο θέμα ενδιαφέροντος είναι η υπογραφή κώδικα. Σημειώστε ότι, παρόλο που ο στόχος δοκιμών σας μπορεί να δηλώσει ότι δεν χρειάζεται προφίλ παροχής στη σελίδα ρυθμίσεων του έργου σας, θα πρέπει να το ρυθμίσετε ώστε να χρησιμοποιεί την ίδια ομάδα και πιστοποιητικό υπογραφής με την εφαρμογή κεντρικού υπολογιστή. Αυτό απαιτείται εάν θέλετε να δοκιμάσετε την εφαρμογή σας σε μια συσκευή iOS και όχι απλώς σε έναν προσομοιωτή. Εάν συμβαίνει αυτό, πρέπει επίσης να βεβαιωθείτε ότι η συσκευή iOS που χρησιμοποιείται για δοκιμές δεν θα κλειδωθεί λόγω αδράνειας, καθώς αυτό θα μπορούσε να προκαλέσει την αναστολή της ολοκλήρωσης της ολοκλήρωσής σας χωρίς να σας ειδοποιήσει.

Τώρα βρισκόμαστε στην καρτέλα 'Συσκευές' που δεν χρειάζεται συγκεκριμένη εξήγηση. Απλώς επιλέξτε μία, πολλές ή όλες τις συσκευές (iOS και προσομοιωτή) στις οποίες θέλετε να δοκιμάσετε τον κωδικό σας. Μπορείτε επίσης να ελέγξετε εάν θα εκτελέσετε δοκιμές σε πολλές συσκευές παράλληλα ή διαδοχικά. Για να το ρυθμίσετε, θα πρέπει να λάβετε υπόψη τις ανάγκες του έργου σας (είτε στοχεύετε σε ένα συγκεκριμένο σύνολο συσκευών είτε σε όλες τις υποστηριζόμενες συσκευές iOS), καθώς και τους πόρους υλικού του διακομιστή.

Στο Επιχειρήματα αυτί. δεν χρειάζεται να προσδιορίσετε τίποτα ρητά, καθώς θα χρησιμοποιούμε μόνο ενσωματωμένες μεταβλητές περιβάλλοντος.

Τέλος, στο Ενεργοποιητές καρτέλα, θα παρουσιάσουμε ένα σενάριο πριν από την ολοκλήρωση και ένα σενάριο μετά την ολοκλήρωση. Το πρώτο είναι ακριβώς εκεί για να μας βοηθήσει να εντοπίσετε σφάλματα σε περίπτωση που αντιμετωπίσουμε κάποια προβλήματα. Στην πραγματικότητα είναι αυτό που έχουμε ήδη χρησιμοποιήσει:

#!/bin/sh set printenv

Το δεύτερο είναι αυτό που θα μας ειδοποιήσει σε περίπτωση που μία ή περισσότερες από τις δοκιμές μας αποτύχουν στην τρέχουσα ολοκλήρωση. Βεβαιωθείτε ότι έχει ρυθμιστεί να λειτουργεί μόνο σε αστοχίες δοκιμής. Και εισαγάγετε τα ακόλουθα:

#!/bin/sh echo '$XCS_TEST_FAILURE_COUNT test(s) failed for $XCS_BOT_NAME bot on build $XCS_INTEGRATION_NUMBER' echo 'You can see bot integration at:' echo 'https://$HOSTNAME/xcode/bots/$XCS_BOT_TINY_ID/integrations/$XCS_INTEGRATION_TINY_ID'

Υπάρχουν μερικά πράγματα που πρέπει να εξηγηθούν εδώ. Πρώτα απ 'όλα, οι μεταβλητές $ HOSTNAME αποθηκεύουν την τιμή της ακόλουθης μορφής: computer-name.local. Προφανώς, ο σύνδεσμος θα λειτουργεί μόνο εάν μπορείτε να φτάσετε σε αυτόν τον διακομιστή μέσω του τοπικού δικτύου. Επίσης, πιθανότατα θα λάβετε μια προειδοποίηση ασφαλείας από το πρόγραμμα περιήγησής σας όταν επισκέπτεστε αυτόν τον σύνδεσμο, καθώς πρόκειται για σύνδεση https σε προορισμό που δεν μπορεί να εμπιστευτεί. Τέλος, αυτό είναι απλώς ένα σημείο εκκίνησης για το σενάριο 'Δοκιμή αποτυχίας'. Θα μπορούσατε να στείλετε ένα email σε ολόκληρη την ομάδα ανάπτυξης ή να ανοίξετε ένα ζήτημα JIRA μέσω ενός αιτήματος API ή οτιδήποτε άλλο πιστεύετε ότι είναι το πιο κατάλληλο και παραγωγικό.

Τυλίγοντας

Ας ελπίσουμε ότι, αυτό το άρθρο σάς ενθάρρυνε να αφιερώσετε χρόνο για να εξερευνήσετε τις δυνατότητες του Xcode Server εκτός από την απλή δημιουργία μιας εφαρμογής. Παρόλο που αυτή η ανάρτηση μπορεί να μην σας βοήθησε ακριβώς με τον τρόπο που θέλατε ή αναμενόταν, ο στόχος ήταν να σας παρουσιάσουμε έναν ανοιχτόμυαλο τρόπο χρήσης ενσωματωμένων περιβαλλόντων και μεταβλητών Xcode Server για να επιτύχετε υψηλότερο επίπεδο αυτοματισμού.

Υπάρχουν πολλές υπηρεσίες τρίτων που προσφέρουν περισσότερη λειτουργικότητα και μπορούν να κάνουν πολύ περισσότερη δουλειά για εσάς, συμπεριλαμβανομένων των Fabric, Bluepill και Fastlane. Αλλά, αναπόφευκτα, η εξάρτηση από τρίτο μέρος εισάγει μια νέα εξάρτηση στο έργο σας και απαιτεί μερικές φορές απλές, μερικές φορές πολύπλοκες ρυθμίσεις και ρυθμίσεις. Οι τεχνικές που περιγράφονται εδώ απαιτούν μόνο εργαλεία που είναι ήδη εγκατεστημένα σε κάθε Mac, επομένως δεν απαιτεί χρόνο εγκατάστασης εκτός από τη διαμόρφωση των πολύ bots που θα εκτελούν τις αυτοματοποιημένες εκδόσεις σας!

απαριθμήστε τις αρχές του σχεδιασμού

Κατανόηση των βασικών

Τι είναι το Xcode;

Το Xcode είναι ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE) που αναπτύχθηκε από την Apple και προσφέρει εργαλεία επεξεργασίας κώδικα και εργαλεία για έργα που στοχεύουν συσκευές Apple — προϊόντα iOS, tvOS, watchOS και macOS.

Τι είναι ο Xcode Server;

Ο διακομιστής Xcode είναι ένα από τα εργαλεία που ενσωματώνονται στο Xcode. Επιτρέπει στους χρήστες να δημιουργούν συνεχή ενοποίηση για ένα ή περισσότερα από τα έργα τους Xcode. Οι ενσωματώσεις μπορούν να εκτελεστούν είτε στο τοπικό είτε στο απομακρυσμένο περιβάλλον, αρκεί ο επιλεγμένος υπολογιστής να διαθέτει την έκδοση Xcode απαραίτητη για την κατασκευή του έργου.

Τι είναι η συνεχής ολοκλήρωση;

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

Ποια ενσωματωμένα εργαλεία για συνεχή ενσωμάτωση παρέχει η Apple;

Τα εργαλεία που αποστέλλονται με κάθε Xcode περιλαμβάνουν Application Loader, agvtool, PlistBuddy, xcodebuild, codeign και πολλά άλλα. Αυτά τα εργαλεία δεν δημιουργήθηκαν ειδικά για συνεχή ενσωμάτωση και είναι χρήσιμα ως αυτόνομα εργαλεία. Ωστόσο, προσφέρουν επιπλέον λειτουργικότητα και ευελιξία για τη διαρκή εγκατάσταση ενοποίησης.

Ποια άλλα εργαλεία μπορώ να χρησιμοποιήσω για να με βοηθήσουν να ρυθμίσω τη συνεχή ολοκλήρωση των έργων μου;

Το Fastlane είναι ίσως το πιο ισχυρό εργαλείο CI που διατίθεται αυτή τη στιγμή. Το Bluepill είναι ένα εργαλείο για την εκτέλεση δοκιμών iOS παράλληλα με τη χρήση πολλαπλών προσομοιωτών. Το BuddyBuild είναι μια διαδικτυακή υπηρεσία συνεχούς ενοποίησης (cloud) που προσφέρει όλες τις λειτουργίες που συζητούνται εδώ και πολλά άλλα.

Σχεδιάζοντας ένα περιβάλλον εργασίας χρήστη VUI - φωνής

Σχεδιασμός Διεπαφής Χρήστη

Σχεδιάζοντας ένα περιβάλλον εργασίας χρήστη VUI - φωνής
Laravel Zero Downtime Ανάπτυξη

Laravel Zero Downtime Ανάπτυξη

Τεχνολογία

Δημοφιλείς Αναρτήσεις
Πώς να επιλέξετε το καλύτερο πλαίσιο Front-End
Πώς να επιλέξετε το καλύτερο πλαίσιο Front-End
Χρειάζεστε έναν ήρωα: Ο υπεύθυνος έργου
Χρειάζεστε έναν ήρωα: Ο υπεύθυνος έργου
Πώς να βελτιώσετε την απόδοση της εφαρμογής ASP.NET στο Web Farm με προσωρινή αποθήκευση
Πώς να βελτιώσετε την απόδοση της εφαρμογής ASP.NET στο Web Farm με προσωρινή αποθήκευση
Οι δοκιμασμένοι και αληθινοί νόμοι του UX (με Infographic)
Οι δοκιμασμένοι και αληθινοί νόμοι του UX (με Infographic)
Ανώτερος συνεργάτης πελάτη, υγειονομική περίθαλψη και βιοεπιστήμες
Ανώτερος συνεργάτης πελάτη, υγειονομική περίθαλψη και βιοεπιστήμες
 
Η άνοδος των αυτοματοποιημένων συναλλαγών: Μηχανές που εμπορεύονται το S&P 500
Η άνοδος των αυτοματοποιημένων συναλλαγών: Μηχανές που εμπορεύονται το S&P 500
10 πιο κοινές ευπάθειες ασφαλείας στον Ιστό
10 πιο κοινές ευπάθειες ασφαλείας στον Ιστό
Σκέψεις για τη συγκέντρωση του ιδιωτικού σας αμοιβαίου κεφαλαίου
Σκέψεις για τη συγκέντρωση του ιδιωτικού σας αμοιβαίου κεφαλαίου
Διευθυντής έργου και διαχείρισης προϊόντων
Διευθυντής έργου και διαχείρισης προϊόντων
Η σημασία της διατήρησης πελατών - μια εμπειρική μελέτη
Η σημασία της διατήρησης πελατών - μια εμπειρική μελέτη
Δημοφιλείς Αναρτήσεις
  • τι είναι ληξιπρόθεσμος λογαριασμός
  • ποια είναι η διαφορά μεταξύ της c corp και της s corp
  • Πώς να εντοπίσετε διαρροή μνήμης στη java
  • c++ αρχείο αντικειμένου
  • περιγράψτε το ρόλο των αρχών gestalt στην αντιληπτική οργάνωση
  • αρχιτέκτονας λύσεων υπηρεσιών web της Amazon
Κατηγορίες
  • Επιστήμη Δεδομένων Και Βάσεις Δεδομένων
  • Κατανεμημένες Ομάδες
  • Ευκίνητο Ταλέντο
  • Κερδοφορία & Αποδοτικότητα
  • © 2022 | Ολα Τα Δικαιώματα Διατηρούνται

    portaldacalheta.pt