Πώς το Gitlab με το Fastlane συλλέγει, σημάδια και δημοσιεύει εφαρμογές iOS στο App Store.
Πρόσφατα είχαμε
Εδώ θα πάρουμε
Λίγα λόγια για τη διαμόρφωση του Apple Store
Θα χρειαστούμε μια εφαρμογή App Store, πιστοποιητικά διανομής και ένα προφίλ παροχής για να συνδέσετε τα πάντα μαζί.
Το πιο δύσκολο πράγμα εδώ είναι η δημιουργία δικαιωμάτων υπογραφής στο App Store. Ελπίζω να το καταλάβετε μόνοι σας. Εάν είστε νέοι, θα σας δείξω προς τη σωστή κατεύθυνση, αλλά δεν θα μιλήσουμε για τις περιπλοκές της διαχείρισης πιστοποιητικών της Apple εδώ και συνεχώς αλλάζουν. Αυτή η ανάρτηση θα σας βοηθήσει να ξεκινήσετε.
Οι εφαρμογές μου
Χρειάζεστε μια εφαρμογή στο App Store Connect, ώστε να έχετε ένα αναγνωριστικό για διαμόρφωση .xcodebuild
. Το προφίλ και το αναγνωριστικό εφαρμογής συνδυάζουν εκδόσεις κώδικα, τιμολόγηση και διαθεσιμότητα και τη διαμόρφωση TestFlight για τη διανομή δοκιμαστικών εφαρμογών στους χρήστες. Μην κάνετε δημόσιες δοκιμές, οι ιδιωτικές δοκιμές θα αρκούν εάν έχετε μια μικρή ομάδα, εύκολη εγκατάσταση και δεν χρειάζεστε πρόσθετες άδειες από την Apple.
Προφίλ αρχικοποίησης
Εκτός από τη ρύθμιση της εφαρμογής, χρειάζεστε κλειδιά διανομής και ανάπτυξης iOS που δημιουργήθηκαν στο τμήμα πιστοποιητικών, αναγνωριστικών και προφίλ της κονσόλας προγραμματιστή Apple. Όλα αυτά τα πιστοποιητικά μπορούν να συνδυαστούν σε ένα προφίλ παροχής.
Οι χρήστες που θα πιστοποιηθούν πρέπει να είναι σε θέση να δημιουργήσουν πιστοποιητικά, διαφορετικά τα βήματα
άλλες επιλογές
Εκτός από αυτή την απλή μέθοδο, υπάρχουν άλλοι τρόποι διαμόρφωσης πιστοποιητικών και προφίλ. Έτσι, εάν εργάζεστε διαφορετικά, ίσως χρειαστεί να προσαρμοστείτε. Το πιο σημαντικό είναι ότι χρειάζεστε διαμόρφωση .xcodebuild
, το οποίο θα δείχνει τα απαραίτητα αρχεία και το keychain πρέπει να είναι διαθέσιμο στον υπολογιστή κατασκευής για τον χρήστη με το όνομα του οποίου εκτελείται το πρόγραμμα εκτέλεσης. Για την ψηφιακή υπογραφή χρησιμοποιούμε το fastlane και εάν υπάρχουν προβλήματα ή θέλετε να μάθετε περισσότερα, ελέγξτε τα στοιχεία τους
Σε αυτό το παράδειγμα χρησιμοποιώ την προσέγγιση
Προετοιμασία gitlab και fastlane
Προετοιμασία CI Runner
Έχοντας συλλέξει όλα αυτά τα δεδομένα, προχωράμε στη διαμόρφωση του προγράμματος εκτέλεσης GitLab στη συσκευή MacOS. Δυστυχώς, μπορείτε να δημιουργήσετε εφαρμογές iOS μόνο σε MacOS. Αλλά όλα μπορούν να αλλάξουν, και αν περιμένετε πρόοδο σε αυτόν τον τομέα, παρακολουθήστε έργα όπως
Η ρύθμιση του δρομέα είναι πολύ απλή. Ακολουθήστε το τρέχον
Σημείωση. Ο δρομέας πρέπει να χρησιμοποιεί ένα εκτελέσιμο πρόγραμμα shell
. Αυτό απαιτείται για την κατασκευή του iOS στο MacOS για να εργαστεί άμεσα ως χρήστης και όχι μέσω δοχείων. Εάν χρησιμοποιείτε shell
, η οικοδόμηση και οι δοκιμές εκτελούνται ως χρήστης του δρομέα, απευθείας στον οικοδεσπότη. Δεν είναι τόσο ασφαλές όσο τα δοχεία, τόσο καλύτερα περιηγηθείτε
sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
sudo chmod +x /usr/local/bin/gitlab-runner
cd ~
gitlab-runner install
gitlab-runner start
Το Apple Keychain πρέπει να διαμορφωθεί σε αυτόν τον κεντρικό υπολογιστή με πρόσβαση στα κλειδιά που χρειάζεται να δημιουργήσει το Xcode. Ο ευκολότερος τρόπος για να το δοκιμάσετε είναι να συνδεθείτε ως χρήστης που θα εκτελέσει το build και να προσπαθήσετε να το δημιουργήσετε χειροκίνητα. Εάν το σύστημα ζητά πρόσβαση με μπρελόκ, επιλέξτε Να επιτρέπεται πάντα η λειτουργία του CI. Ίσως αξίζει να μπείτε και να παρακολουθήσετε τους πρώτους σωλήνες για να βεβαιωθείτε ότι δεν ζητούν πια το μπρελόκ. Το πρόβλημα είναι ότι η Apple δεν μας διευκολύνει τη χρήση της Αυτόματης λειτουργίας, αλλά μόλις το ξεκινήσετε, όλα θα πάνε καλά.
fastlane init
Για να χρησιμοποιήσετε το FastLane σε ένα έργο, εκτελέστε fastlane init
. Απλά ακολούθα
Στον κατάλογο του έργου σας, εκτελέστε αυτές τις εντολές:
xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init
Το FastLane θα ζητήσει μια βασική διαμόρφωση και, στη συνέχεια, θα δημιουργήσει ένα φάκελο Fastlane στο έργο με τρία αρχεία:
1. fastlane/Appfile
Δεν υπάρχει τίποτα περίπλοκο εδώ. Απλά βεβαιωθείτε ότι το αναγνωριστικό της Apple και το αναγνωριστικό εφαρμογής σας είναι σωστές.
app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address
2. fastlane/Fastfile
Fastfile
Ορίζει τα βήματα κατασκευής. Χρησιμοποιούμε πολλά ενσωματωμένα χαρακτηριστικά του Fastlane, οπότε όλα είναι καθαρά και εδώ. Δημιουργούμε μια γραμμή που λαμβάνει πιστοποιητικά, εκτελεί τη συναρμολόγηση και το μεταφορτώνει στην πτήση TestFlight. Μπορείτε να διαιρέσετε αυτή τη διαδικασία σε διαφορετικές εργασίες εάν είναι απαραίτητο. Όλες αυτές οι λειτουργίες (get_certificates
, get_provisioning_profile
, gym
и upload_to_testflight
) περιλαμβάνονται ήδη στο fastlane.
Δραστηριότητα get_certificates
и get_provisioning_profile
Σχετικά με την προσέγγιση υπογραφής
default_platform(:ios)
platform :ios do
desc "Build the application"
lane :flappybuild do
get_certificates
get_provisioning_profile
gym
upload_to_testflight
end
end
3. fastlane/Gymfile
Αυτό είναι ένα προαιρετικό αρχείο, αλλά το δημιούργησα με μη αυτόματο τρόπο για να αλλάξω τον προεπιλεγμένο κατάλογο εξόδου και να τοποθετήσω την έξοδο στον τρέχοντα φάκελο. Αυτό απλοποιεί το CI. Εάν ενδιαφέρεστε, διαβάστε για gym
και τις παραμέτρους του σε
https://docs.fastlane.tools/actions/gym/
Το δικό μας .gitlab-ci.yml
Έτσι, έχουμε έναν δρομέα CI για το έργο και είμαστε έτοιμοι να δοκιμάσουμε τον αγωγό. Ας δούμε τι έχουμε .gitlab-ci.yml
:
stages:
- build
variables:
LC_ALL: "en_US.UTF-8"
LANG: "en_US.UTF-8"
GIT_STRATEGY: clone
build:
stage: build
script:
- bundle install
- bundle exec fastlane flappybuild
artifacts:
paths:
- ./FlappyBird.ipa
Все отлично! clone
με πρόγραμμα εκτέλεσης shell
, ώστε να έχουμε έναν καθαρό χώρο εργασίας για κάθε συναρμολόγηση και απλά να καλέσουμε flappybuild
fastlane, όπως φαίνεται παραπάνω. Ως αποτέλεσμα, έχουμε τη συναρμολόγηση, την υπογραφή και την ανάπτυξη της πιο πρόσφατης συναρμολόγησης στο TestFlight.
Παίρνουμε επίσης το τεχνούργημα και το σώζουμε με τη συναρμολόγηση. Σημειώστε ότι η μορφή .ipa
είναι ένα υπογεγραμμένο εκτελέσιμο αρχείο ARM που δεν εκτελείται στον προσομοιωτή. Εάν θέλετε έξοδο για τον προσομοιωτή, απλώς προσθέστε τον στόχο κατασκευής που τον παράγει και, στη συνέχεια, συμπεριλάβετέ τον στη διαδρομή τεχνουργήματος.
Άλλες μεταβλητές περιβάλλοντος
Υπάρχουν μερικές μεταβλητές περιβάλλοντος εδώ που κάνουν τα πάντα να λειτουργούν.
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
и FASTLANE_SESSION
Απαιτείται έλεγχος ταυτότητας για fastlane για έλεγχο ταυτότητας στο App Store και μεταφόρτωση στο TestFlight. Για να το κάνετε αυτό, δημιουργήστε έναν κωδικό πρόσβασης για την εφαρμογή που θα χρησιμοποιηθεί στο CI. Λεπτομέριες
Εάν έχετε έλεγχο ταυτότητας δύο παραγόντων, δημιουργήστε μια μεταβλητή FASTLANE_SESSION
(Οδηγίες εκεί).
FASTLANE_USER
и FASTLANE_PASSWORD
Ότι FASTLANE_USER
и FASTLANE_PASSWORD
. Λεπτομέριες
Εν κατακλείδι
Μπορείτε να δείτε πώς λειτουργούν όλα
Ελπίζω ότι αυτό ήταν χρήσιμο και σας ενέπνευσε να εργαστείτε με εκδόσεις iOS σε ένα έργο GitLab. Εδώ είναι ένα άλλο CI_BUILD_ID
(για σταδιακά κτίσματα) σε
Ένα άλλο ωραίο χαρακτηριστικό του fastlane είναι
Πείτε μας στα σχόλια σχετικά με την εμπειρία σας και μοιραστείτε τις ιδέες σας για τη βελτίωση της Gitlab για την ανάπτυξη εφαρμογών iOS.
Πηγή: www.habr.com