Το Bitrise είναι μια εξειδικευμένη πλατφόρμα CI/CD για κινητή ανάπτυξη, χτισμένη γύρω από έτοιμα Steps — προρυθμισμένες μονάδες για τη δημιουργία, υπογραφή και δημοσίευση εφαρμογών iOS και Android. Σύμφωνα με τα στοιχεία Bitrise, 2024, η πλατφόρμα υποστηρίζει πάνω από 400 έτοιμα Steps και ενσωματώνεται με Xcode, Gradle, Fastlane, Firebase και App Store Connect.
Κύρια σημεία
Bitrise είναι μια πλατφόρμα CI/CD που ξεκίνησε το 2016 και είναι πλήρως επικεντρωμένη στην κινητή ανάπτυξη. Σε αντίθεση με τις καθολικές λύσεις GitHub Actions και GitLab CI, το Bitrise σχεδιάστηκε εξ αρχής για την αυτοματοποίηση της δημιουργίας εφαρμογών iOS και Android. Η πλατφόρμα λειτουργεί στο cloud και παρέχει δικά της hosted runners με macOS και Linux. Το Bitrise υποστηρίζει όλες τις δημοφιλείς κινητές στοίβες: Swift, Kotlin, Flutter, React Native, Cordova και Xamarin.
Το κύριο πλεονέκτημα του Bitrise είναι τα προρυθμισμένα Step templates για τυπικές εργασίες κινητής ανάπτυξης: Xcode build, Gradle assemble, Fastlane, Firebase Distribution, TestFlight, Google Play. Η διαμόρφωση του pipeline διαρκεί λεπτά μέσω του οπτικού επεξεργαστή και η διαμόρφωση YAML δημιουργείται αυτόματα στο αρχείο bitrise.yml. Για προχωρημένους χρήστες, διατίθεται επεξεργαστής YAML με αυτόματη συμπλήρωση.
Η αρχιτεκτονική του Bitrise βασίζεται σε δύο βασικές έννοιες: Workflow και Step. Workflow είναι μια ακολουθία Steps που καθορίζει το pipeline. Κάθε έργο μπορεί να έχει πολλαπλά Workflows: primary (κύρια δημιουργία), deploy (δημοσίευση), test (μόνο δοκιμές). Το Workflow ενεργοποιείται από triggers: push, PR, tag ή βάσει προγράμματος. Το Workflow μπορεί να εκτελεστεί χειροκίνητα από τη διεπαφή ιστού, κάτι που είναι χρήσιμο για ad-hoc builds.
Το Step είναι μια ατομική μονάδα που εκτελεί μία εργασία. Τα βήματα μπορούν να μεταφερθούν στον οπτικό επεξεργαστή, η σειρά και η διαμόρφωσή τους μπορούν να αλλάξουν. Το Bitrise παρέχει Steps για Xcode Archive & Export, Gradle Runner, CocoaPods Install, Firebase Distribution, ειδοποιήσεις Slack. Η κοινότητα δημιουργεί επίσης Steps — είναι διαθέσιμα μέσω του Step Library. Κάθε Step έχει υποχρεωτικές και προαιρετικές παραμέτρους εισόδου, καθώς και μεταβλητές εξόδου που μπορούν να χρησιμοποιηθούν από επόμενα Steps.
Το Bitrise υποστηρίζει την έννοια του Pipeline — συνδυασμό πολλαπλών Workflows σε ένα pipeline. Το Pipeline μπορεί να περιλαμβάνει κύρια δημιουργία για όλες τις πλατφόρμες και ξεχωριστά workflows για ανάπτυξη και δοκιμές. Αυτό επιτρέπει τη δημιουργία σύνθετων διαδικασιών CI/CD όπου η μία δημιουργία ενεργοποιεί την επόμενη. Τα Stacks Bitrise καθορίζουν το προεγκατεστημένο λογισμικό στο runner: Xcode, Android SDK, Flutter, Node.js και άλλα εργαλεία.
Το Bitrise ενσωματώνεται με GitHub, GitLab, Bitbucket και Azure DevOps. Κατά τη σύνδεση αποθετηρίου, το Bitrise ανιχνεύει αυτόματα τον τύπο έργου (iOS, Android, Flutter) και προτείνει ένα πρότυπο Workflow. Για ιδιωτικά αποθετήρια, το Bitrise ζητά πρόσβαση μέσω OAuth ή κλειδιού SSH. Υποστηρίζεται η σύνδεση πολλαπλών αποθετηρίων σε μία εφαρμογή.
Μετά τη σύνδεση, το Bitrise δημιουργεί ένα webhook στο αποθετήριο για αυτόματη έναρξη builds κατά push και PR. Κάθε build λαμβάνει ένα μοναδικό αριθμό, αρχεία καταγραφής και artifacts. Η διεπαφή επιτρέπει την προβολή ιστορικού builds, σύγκριση αλλαγών και επανεκκίνηση αποτυχημένων builds. Το Bitrise υποστηρίζει επίσης προγραμματισμένα builds για τακτικά νυχτερινά builds και ενσωμάτωση με Jira για παρακολούθηση commits.
Το code signing για iOS είναι μία από τις πιο δύσκολες εργασίες CI/CD και το Bitrise το λύνει εξαιρετικά απλά. Η πλατφόρμα αποθηκεύει πιστοποιητικά και provisioning profiles σε κρυπτογραφημένη μορφή, τα εγκαθιστά αυτόματα στο κατάλληλο keychain πριν από το build και εξάγει το υπογεγραμμένο IPA. Το Step Certificate and Profile Installer κατεβάζει αρχεία από τον αποθηκευτικό χώρο Bitrise και διαμορφώνει το Xcode. Υποστηρίζονται τύποι πιστοποιητικών Development, AdHoc, AppStore και Enterprise.
Για δημοσίευση στο App Store Connect, το Bitrise παρέχει Steps για μεταφόρτωση IPA μέσω Xcode Archive & Export. Η δημοσίευση στο Google Play χρησιμοποιεί το Gradle Runner με υπογραφή μέσω Keystore, μετά την οποία το APK/AAB μεταφορτώνεται στο Google Play Console μέσω του Google Play Deploy Step. Για το Firebase App Distribution αρκεί να καθορίσετε το Firebase Token και την ομάδα δοκιμαστών. Το Bitrise αυτοματοποιεί την ενημέρωση εκδόσεων build (version number και build number) πριν από κάθε δημοσίευση.
Τα πιστοποιητικά μεταφορτώνονται στην ενότητα Code Signing της διεπαφής ιστού: P12 με ιδιωτικό κλειδί, provisioning profile (.mobileprovision), Keystore (.jks/.keystore) για Android. Το Bitrise εγκαθιστά αυτόματα πιστοποιητικά iOS στο keychain σε κάθε εκκίνηση Workflow και εξάγει την υπογεγραμμένη εφαρμογή. Για Android, αρκεί να μεταφορτώσετε το αρχείο Keystore — το Bitrise το μεταβιβάζει στο Gradle μέσω μεταβλητών περιβάλλοντος κατά τη διάρκεια του build.
Ας εξετάσουμε ένα Workflow για μια εφαρμογή Flutter που δημιουργεί και δημοσιεύει builds για iOS και Android. Το Bitrise ανιχνεύει αυτόματα το έργο Flutter και προτείνει τα αντίστοιχα Steps. Το Workflow περιλαμβάνει εγκατάσταση Flutter, προσωρινή αποθήκευση pub-cache, δημιουργία, δοκιμή και ανάπτυξη. Για το iOS build απαιτούνται επιπλέον πιστοποιητικά code signing, τα οποία το Bitrise φορτώνει αυτόματα.
Κατά τη δημιουργία εφαρμογών Flutter, το Bitrise υποστηρίζει ξεχωριστή διαμόρφωση για πλατφόρμες. Το Android build εκτελείται σε Linux runner με Flutter SDK, το iOS σε macOS runner. Το Workflow μπορεί να περιλαμβάνει υπό συνθήκη Steps: build_android και build_ios που εκτελούνται μόνο στις αντίστοιχες πλατφόρμες. Για έργα React Native, το Bitrise προσφέρει παρόμοιο σύνολο Steps με npm/nvm και Metro bundler.
format_version: 13
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
trigger_map:
- push_branch: main
workflow: primary
workflows:
primary:
steps:
- activate-ssh-key@4:
run_if: true
- git-clone@8: {}
- flutter-installer@0:
inputs:
- version: 3.24.0
- flutter-build@0:
inputs:
- platform: both
- ios_output_type: archive
- deploy-to-bitrise-io@2: {}
Μετά το build, μπορείτε να προσθέσετε το Step Firebase App Distribution για iOS και Android. Το Step δέχεται firebase_token, app_id και testers_group. Το Bitrise αντικαθιστά τιμές από τα Secrets — η ασφαλής αποθήκευση token εγγυάται ότι δεν θα εμφανιστούν στα αρχεία καταγραφής.
- firebase-app-distribution@1:
inputs:
- firebase_token: $FIREBASE_TOKEN
- app_id: $FIREBASE_IOS_APP_ID
- testers_group: qa-team
- release_notes: |
Build $BITRISE_BUILD_NUMBER
Η σωστή διαχείριση εμπιστευτικών δεδομένων είναι το θεμέλιο της ασφάλειας των διαδικασιών CI/CD. Τα Bitrise Secrets είναι κρυπτογραφημένα και μη αναγνώσιμα μετά την αποθήκευση. Κατά τη δημιουργία μιας νέας εφαρμογής, το Bitrise προσφέρει εισαγωγή secrets από άλλο έργο ή μη αυτόματη ρύθμιση. Για μεγάλες ομάδες, διατίθεται η λειτουργία Environment Groups — κεντρική διαχείριση μεταβλητών και secrets για μια ομάδα εφαρμογών.
Το Bitrise παρέχει ενσωματωμένο χώρο αποθήκευσης Secrets για εμπιστευτικά δεδομένα: κλειδιά API, token Firebase, κωδικούς Keystore, Apple ID. Τα Secrets ρυθμίζονται ως ζεύγη κλειδιού-τιμής στη διεπαφή ιστού και αποκρύπτονται στα αρχεία καταγραφής build. Είναι διαθέσιμα σε επίπεδο εφαρμογής και σε επίπεδο Workflow. Τα Secrets δεν μπορούν να διαβαστούν μετά την αποθήκευση — μπορούν μόνο να αντικατασταθούν.
Οι Environment Variables (χωρίς ετικέτα Secret) χρησιμοποιούνται για διαμορφώσεις: έκδοση Xcode, διαδρομή έργου, σχήμα build. Οι μεταβλητές περιβάλλοντος Bitrise (BITRISE_BUILD_NUMBER, BITRISE_APP_TITLE) παρέχουν πληροφορίες meta για το build. Τα Secrets κρυπτογραφούνται κατά την αποθήκευση και αποκρυπτογραφούνται μόνο στο runner κατά την εκτέλεση του Workflow. Για ομαδική διαχείριση μεταβλητών, το Bitrise υποστηρίζει Environment Groups — σύνολα μεταβλητών που μπορούν να εφαρμοστούν σε πολλές εφαρμογές ταυτόχρονα.
Η διαχείριση πιστοποιητικών iOS μέσω Bitrise απαιτεί ιδιαίτερη προσοχή. Η πλατφόρμα εγκαθιστά αυτόματα P12 και provisioning profile στο keychain συστήματος πριν από το build. Για Android, χρησιμοποιείται το αρχείο Keystore που μεταφορτώνεται στην ενότητα Code Signing. Κάθε αρχείο πιστοποιητικού αποθηκεύεται σε κρυπτογραφημένη μορφή και αποκρυπτογραφείται μόνο κατά τη διάρκεια του build.
- google-play-deploy@3:
inputs:
- package_name: com.example.app
- service_account_json_key: $SERVICE_ACCOUNT_KEY
- app_file: $BITRISE_APK_PATH
Το Bitrise προσφέρει διάφορες στοίβες (stack) για build — προεγκατεστημένες εικόνες με εργαλεία και SDK. Διαθέσιμες στοίβες για Xcode (εκδόσεις 14, 15, 16 με iOS SDK 17, 18), για Android (με διαφορετικές εκδόσεις SDK και NDK), για Flutter, React Native και Kotlin Multiplatform. Κάθε στοίβα έχει περιγραφή των προεγκατεστημένων εργαλείων και εκδόσεων.
Η επιλογή στοίβας επηρεάζει τον χρόνο build και τη συμβατότητα με το έργο. Το Bitrise ενημερώνει τακτικά τις στοίβες, προσθέτοντας νέες εκδόσεις εργαλείων. Μπορείτε να καθορίσετε μια συγκεκριμένη έκδοση στοίβας στο bitrise.yml για να αποφύγετε απροσδόκητες αλλαγές κατά την ενημέρωση της πλατφόρμας. Για προσαρμοσμένες εξαρτήσεις, χρησιμοποιείται το Script Step που εγκαθιστά τα απαραίτητα πακέτα πριν από το κύριο build. Το Bitrise υποστηρίζει επίσης εικόνες Docker για Linux stacks, επιτρέποντας τη χρήση προσαρμοσμένου περιβάλλοντος για Android builds.
Συχνές ερωτήσεις
Το Bitrise προσφέρει δωρεάν πρόγραμμα με 90 λεπτά build ανά μήνα και ένα concurrent build. Το Developer (79$/μήνα) περιλαμβάνει 3000 λεπτά, έως 5 concurrent builds και όλες τις ενσωματώσεις. Enterprise — εξατομικευμένη τιμολόγηση.
Το Bitrise υποστηρίζει iOS (Swift, Objective-C), Android (Kotlin, Java), Flutter, React Native, Cordova, Ionic και Xamarin. Για κάθε πλατφόρμα υπάρχουν προεγκατεστημένα εργαλεία και πρότυπα Workflow.
Το Bitrise παρέχει macOS runners για iOS build χωρίς πρόσθετη ρύθμιση. Η πλατφόρμα διαχειρίζεται η ίδια την υποδομή macOS — ο runner επιλέγεται αυτόματα ανάλογα με τη στοίβα της εφαρμογής.
Το Bitrise αποθηκεύει πιστοποιητικά σε κρυπτογραφημένη μορφή και τα εγκαθιστά αυτόματα στο keychain πριν από το build μέσω του Step Certificate and Profile Installer. Για Android παρόμοια — το Keystore μεταφορτώνεται και χρησιμοποιείται από το Gradle κατά την υπογραφή.
Ναι, το Bitrise υποστηρίζει προσαρμοσμένα Steps μέσω Script Step (bash script) και προσαρμοσμένης Step Library από GitHub. Μπορείτε επίσης να δημιουργήσετε το δικό σας Step σύμφωνα με την τεκμηρίωση Bitrise και να το δημοσιεύσετε στο Step Library.
Σύνοψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.