Bitrise mobil ishlab chiqish uchun ixtisoslashgan CI/CD platformasi bo'lib, tayyor Steps — iOS va Android ilovalarini qurish, imzolash va nashr qilish uchun oldindan sozlangan modullar atrofida qurilgan. Bitrise, 2024 ma'lumotlariga ko'ra, platforma 400 dan ortiq tayyor Steps ni qo'llab-quvvatlaydi va Xcode, Gradle, Fastlane, Firebase va App Store Connect bilan integratsiyalashadi.
Asosiy fikrlar
Bitrise 2016 yilda ishga tushirilgan va to'liq mobil ishlab chiqishga yo'naltirilgan CI/CD platformasidir. Universal GitHub Actions va GitLab CI yechimlaridan farqli o'laroq, Bitrise boshidan iOS va Android ilovalarini qurishni avtomatlashtirish uchun mo'ljallangan. Platforma bulutda ishlaydi va macOS va Linux bilan o'zining host qilingan runner-larini taqdim etadi. Bitrise barcha mashhur mobil stack-larni qo'llab-quvvatlaydi: Swift, Kotlin, Flutter, React Native, Cordova va Xamarin.
Bitrise-ning asosiy afzalligi mobil ishlab chiqishning odatiy vazifalari uchun oldindan sozlangan Step shablonlaridir: Xcode build, Gradle assemble, Fastlane, Firebase Distribution, TestFlight, Google Play. Pipeline-ni sozlash vizual muharrir orqali daqiqalar davom etadi va YAML konfiguratsiyasi bitrise.yml faylida avtomatik yaratiladi. Tajribali foydalanuvchilar uchun avtomatik to'ldirish bilan YAML muharriri mavjud.
Bitrise arxitekturasi ikkita asosiy tushuncha ustiga qurilgan: Workflow va Step. Workflow — pipeline-ni belgilaydigan Steps ketma-ketligi. Har bir loyiha bir nechta Workflow-ga ega bo'lishi mumkin: primary (asosiy qurish), deploy (nashr), test (faqat testlar). Workflow trigger-lar bilan ishga tushiriladi: push, PR, tag yoki jadval bo'yicha. Workflow-ni veb interfeysdan qo'lda ishga tushirish mumkin, bu ad-hoc qurishlar uchun foydali.
Step bitta vazifani bajaradigan atom moduldir. Qadamlarni vizual muharrirda sudrab tashlash, ularning tartibi va konfiguratsiyasini o'zgartirish mumkin. Bitrise taqdim etadi Xcode Archive & Export, Gradle Runner, CocoaPods Install, Firebase Distribution, Slack bildirishnomalari uchun Steps. Hamjamiyat ham Steps yaratadi — ular Step Library orqali mavjud. Har bir Step majburiy va ixtiyoriy kirish parametrlariga, shuningdek keyingi Steps tomonidan ishlatilishi mumkin bo'lgan chiqish o'zgaruvchilariga ega.
Bitrise Pipeline konsepsiyasini qo'llab-quvvatlaydi — bir nechta Workflow-ni bitta pipeline-da birlashtirish. Pipeline o'z ichiga olishi mumkin barcha platformalar uchun asosiy qurish va joylashtirish va test uchun alohida workflow-lar. Bu bir qurish boshqasini ishga tushiradigan murakkab CI/CD jarayonlarini yaratishga imkon beradi. Bitrise Stacks runner-da oldindan o'rnatilgan dasturiy ta'minotni belgilaydi: Xcode, Android SDK, Flutter, Node.js va boshqa vositalar.
Bitrise GitHub, GitLab, Bitbucket va Azure DevOps bilan integratsiyalashadi. Ulanishdan so'ng repozitoriyaga, Bitrise avtomatik loyiha turini (iOS, Android, Flutter) aniqlaydi va Workflow shablonini taklif qiladi. Xususiy repozitoriyalar uchun Bitrise OAuth yoki SSH kaliti orqali kirishni talab qiladi. Bitta ilovaga bir nechta repozitoriyani ulash qo'llab-quvvatlanadi.
Ulanishdan so'ng, Bitrise push va PR paytida qurishlarni avtomatik ishga tushirish uchun repozitoriyada webhook yaratadi. Har bir qurish noyob raqam, loglar va artefaktlarni oladi. Interfeys qurishlar tarixini ko'rish, o'zgarishlarni taqqoslash va muvaffaqiyatsiz build-larni qayta ishga tushirish imkonini beradi. Bitrise, shuningdek, muntazam tungi qurishlar uchun scheduled builds va commitlarni kuzatish uchun Jira bilan integratsiyani qo'llab-quvvatlaydi.
iOS uchun code signing CI/CD ning eng qiyin vazifalaridan biridir va Bitrise buni juda sodda hal qiladi. Platforma saqlaydi sertifikatlar va provisioning profile-larni shifrlangan shaklda, qurishdan oldin ularni avtomatik tegishli keychain-ga o'rnatadi va imzolangan IPA-ni eksport qiladi. Certificate and Profile Installer Step-i fayllarni Bitrise omboridan yuklab oladi va Xcode-ni sozlaydi. Development, AdHoc, AppStore va Enterprise sertifikat turlari qo'llab-quvvatlanadi.
App Store Connect da nashr qilish uchun Bitrise Xcode Archive & Export orqali IPA yuklash uchun Steps taqdim etadi. Google Play nashri Keystore orqali imzo bilan Gradle Runner dan foydalanadi, shundan so'ng APK/AAB Google Play Deploy Step orqali Google Play Console ga yuklanadi. Firebase App Distribution uchun Firebase Token va sinovchilar guruhini ko'rsatish kifoya. Bitrise har bir nashrdan oldin qurish versiyalarini (version number va build number) yangilashni avtomatlashtiradi.
Sertifikatlar veb interfeysning Code Signing bo'limiga yuklanadi: xususiy kalit bilan P12, provisioning profile (.mobileprovision), Android uchun Keystore (.jks/.keystore). Bitrise avtomatik har bir Workflow ishga tushirilganda iOS sertifikatlarini keychain-ga o'rnatadi va imzolangan ilovani eksport qiladi. Android uchun Keystore faylini yuklash kifoya — Bitrise uni qurish vaqtida muhit o'zgaruvchilari orqali Gradle-ga uzatadi.
iOS va Android uchun qurishlarni yaratadigan va nashr qiladigan Flutter ilovasi uchun Workflow-ni ko'rib chiqaylik. Bitrise avtomatik Flutter loyihasini aniqlaydi va tegishli Steps-ni taklif qiladi. Workflow Flutter o'rnatish, pub-cache keshlash, qurish, test va joylashtirishni o'z ichiga oladi. iOS qurishi uchun qo'shimcha Bitrise avtomatik yuklaydigan code signing sertifikatlari talab qilinadi.
Flutter ilovalarini qurishda Bitrise platformalar uchun alohida sozlashni qo'llab-quvvatlaydi. Android qurishi Flutter SDK bilan Linux runner da, iOS — macOS runner da bajariladi. Workflow faqat tegishli platformalarda ishga tushiriladigan shartli Steps-ni o'z ichiga olishi mumkin: build_android va build_ios. React Native loyihalari uchun Bitrise npm/nvm va Metro bundler bilan o'xshash Steps to'plamini taklif qiladi.
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: {}
Qurishdan so'ng iOS va Android uchun Firebase App Distribution Step-ni qo'shish mumkin. Step qabul qiladi firebase_token, app_id va testers_group. Bitrise qiymatlarni Secrets-dan almashtiradi — tokenlarning xavfsiz saqlanishi ularning loglarga tushmasligini kafolatlaydi.
- 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
Maxfiy ma'lumotlarni to'g'ri boshqarish CI/CD jarayonlari xavfsizligining asosidir. Bitrise Secrets shifrlanadi va saqlanganidan keyin o'qish uchun mavjud emas. Yangi ilova yaratishda Bitrise secrets-larni boshqa loyihadan import qilishni yoki qo'lda o'rnatishni taklif qiladi. Katta jamoalar uchun Environment Groups funksiyasi mavjud — ilovalar guruhi uchun o'zgaruvchilar va secrets-larni markazlashtirilgan boshqarish.
Bitrise maxfiy ma'lumotlar uchun ichki Secrets omborini taqdim etadi: API kalitlari, Firebase tokenlari, Keystore parollari, Apple ID. Secrets o'rnatiladi veb interfeysda kalit-qiymat juftliklari sifatida va qurish loglarida maskalanadi. Ilova va Workflow darajasida mavjud. Secrets saqlanganidan keyin o'qib bo'lmaydi — ularni faqat qayta yozish mumkin.
Environment Variables (Secret belgisisiz) konfiguratsiyalar uchun ishlatiladi: Xcode versiyasi, loyiha yo'li, qurish sxemasi. Bitrise muhit o'zgaruvchilari (BITRISE_BUILD_NUMBER, BITRISE_APP_TITLE) qurish haqida meta-ma'lumot beradi. Secrets saqlash vaqtida shifrlanadi va faqat Workflow bajarilishi paytida runner da deshifrlanadi. O'zgaruvchilarni guruhli boshqarish uchun Bitrise Environment Groups-ni qo'llab-quvvatlaydi — bir vaqtning o'zida bir nechta ilovaga qo'llanilishi mumkin bo'lgan o'zgaruvchilar to'plami.
Bitrise orqali iOS sertifikatlarini boshqarish alohida e'tibor talab qiladi. Platforma avtomatik qurishdan oldin P12 va provisioning profile-ni tizim keychain-ga o'rnatadi. Android uchun Code Signing bo'limiga yuklangan Keystore fayli ishlatiladi. Har bir sertifikat fayli shifrlangan shaklda saqlanadi va faqat build vaqtida deshifrlanadi.
- google-play-deploy@3:
inputs:
- package_name: com.example.app
- service_account_json_key: $SERVICE_ACCOUNT_KEY
- app_file: $BITRISE_APK_PATH
Bitrise qurish uchun turli stack-larni taklif qiladi — vositalar va SDK bilan oldindan o'rnatilgan tasvirlar. Stack-lar mavjud Xcode (14, 15, 16 versiyalari iOS SDK 17, 18 bilan), Android (turli SDK va NDK versiyalari bilan), Flutter, React Native va Kotlin Multiplatform uchun. Har bir stack oldindan o'rnatilgan vositalar va versiyalarning tavsifiga ega.
Stack tanlovi qurish vaqtiga va loyiha bilan moslikka ta'sir qiladi. Bitrise muntazam yangilaydi stack-larni, vositalarning yangi versiyalarini qo'shib. Platforma yangilanishlarida kutilmagan o'zgarishlarning oldini olish uchun bitrise.yml da stack-ning aniq versiyasini belgilash mumkin. Maxsus bog'liqliklar uchun asosiy qurishdan oldin kerakli paketlarni o'rnatadigan Script Step ishlatiladi. Bitrise, shuningdek, Linux stack-lari uchun Docker tasvirlarini qo'llab-quvvatlaydi, bu Android qurishlari uchun maxsus muhitdan foydalanish imkonini beradi.
Tez-tez so'raladigan savollar
Bitrise bepul rejani taklif qiladi oyiga 90 daqiqa qurish va bitta concurrent build bilan. Developer ($79/oy) 3000 daqiqa, 5 tagacha concurrent build va barcha integratsiyalarni o'z ichiga oladi. Enterprise — individual narx.
Bitrise iOS (Swift, Objective-C), Android (Kotlin, Java), Flutter, React Native, Cordova, Ionic va Xamarin-ni qo'llab-quvvatlaydi. Har bir platforma uchun oldindan o'rnatilgan vositalar va Workflow shablonlari mavjud.
Bitrise qo'shimcha sozlashsiz iOS qurishi uchun macOS runner-larini taqdim etadi. Platforma o'zi macOS infratuzilmasini boshqaradi — runner ilova stack-iga qarab avtomatik tanlanadi.
Bitrise sertifikatlarni shifrlangan shaklda saqlaydi va Certificate and Profile Installer Step-i orqali qurishdan oldin ularni avtomatik keychain-ga o'rnatadi. Android uchun xuddi shunday — Keystore yuklanadi va imzolash paytida Gradle tomonidan ishlatiladi.
Ha, Bitrise Script Step (bash skripti) va GitHub dan maxsus Step Library orqali maxsus Steps ni qo'llab-quvvatlaydi. Shuningdek, Bitrise hujjatlariga muvofiq o'z Step-ingizni yaratib, Step Library da nashr qilishingiz mumkin.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.