Ang Bitrise ay isang espesyalisadong CI/CD platform para sa mobile development, na binuo sa paligid ng mga handa nang Steps — mga pre-configure na module para sa pag-build, pag-sign, at pag-publish ng mga iOS at Android app. Ayon sa Bitrise, 2024, sinusuportahan ng platform ang mahigit 400 handa nang Steps at integrated sa Xcode, Gradle, Fastlane, Firebase at App Store Connect.
Mga pangunahing punto
Bitrise ay isang CI/CD platform na inilunsad noong 2016 at ganap na nakatuon sa mobile development. Hindi tulad ng mga unibersal na solusyon na GitHub Actions at GitLab CI, ang Bitrise ay mula sa simula ay dinisenyo para sa automation ng pag-build ng mga iOS at Android app. Ang platform ay tumatakbo sa cloud at nagbibigay ng sarili nitong hosted runners na may macOS at Linux. Sinusuportahan ng Bitrise ang lahat ng sikat na mobile stack: Swift, Kotlin, Flutter, React Native, Cordova at Xamarin.
Ang pangunahing bentahe ng Bitrise ay ang mga pre-configure na Step template para sa karaniwang mga gawain sa mobile development: Xcode build, Gradle assemble, Fastlane, Firebase Distribution, TestFlight, Google Play. Ang konfigurasyon ng pipeline ay tumatagal ng ilang minuto sa pamamagitan ng visual editor, at ang YAML configuration ay awtomatikong nabubuo sa file na bitrise.yml. Para sa mga bihasang gumagamit, available ang YAML editor na may autocomplete.
Ang arkitektura ng Bitrise ay binuo sa dalawang pangunahing konsepto: Workflow at Step. Workflow ay isang pagkakasunod-sunod ng Steps na tumutukoy sa pipeline. Ang bawat proyekto ay maaaring magkaroon ng maraming Workflow: primary (pangunahing build), deploy (pag-publish), test (mga test lamang). Ang Workflow ay na-trigger ng: push, PR, tag o ayon sa iskedyul. Ang Workflow ay maaaring manu-manong patakbuhin mula sa web interface, na kapaki-pakinabang para sa ad-hoc builds.
Ang Step ay isang atomic module na nagsasagawa ng isang gawain. Ang mga hakbang ay maaaring i-drag sa visual editor, ang kanilang pagkakasunod-sunod at configuration ay maaaring baguhin. Nagbibigay ang Bitrise ng Steps para sa Xcode Archive & Export, Gradle Runner, CocoaPods Install, Firebase Distribution, Slack notification. Ang komunidad ay gumagawa din ng Steps — ang mga ito ay available sa pamamagitan ng Step Library. Ang bawat Step ay may mandatory at opsyonal na input parameter, pati na rin ang output variable na maaaring gamitin ng mga susunod na Steps.
Sinusuportahan ng Bitrise ang konsepto ng Pipeline — pagsasama ng maraming Workflow sa isang pipeline. Ang Pipeline ay maaaring magsama ng pangunahing build para sa lahat ng platform at hiwalay na workflow para sa deployment at testing. Ito ay nagbibigay-daan sa paglikha ng mga kumplikadong CI/CD process kung saan ang isang build ay nagti-trigger ng isa pa. Tinutukoy ng Bitrise Stacks ang pre-install na software sa runner: Xcode, Android SDK, Flutter, Node.js at iba pang mga tool.
Ang Bitrise ay integrated sa GitHub, GitLab, Bitbucket at Azure DevOps. Sa pagkonekta ng repository, awtomatikong na-detect ng Bitrise ang uri ng proyekto (iOS, Android, Flutter) at nagmumungkahi ng Workflow template. Para sa mga pribadong repository, humihingi ang Bitrise ng access sa pamamagitan ng OAuth o SSH key. Ang pagkonekta ng maraming repository sa isang app ay sinusuportahan.
Pagkatapos ng koneksyon, gumagawa ang Bitrise ng webhook sa repository para sa awtomatikong pagsisimula ng builds sa push at PR. Ang bawat build ay tumatanggap ng natatanging numero, log at artefact. Ang interface ay nagbibigay-daan sa pagtingin ng kasaysayan ng builds, paghahambing ng mga pagbabago at pag-restart ng mga failed build. Sinusuportahan din ng Bitrise ang scheduled builds para sa regular na night builds at integrasyon sa Jira para sa pagsubaybay ng mga commit.
Ang code signing para sa iOS ay isa sa pinakamahirap na CI/CD tasks, at ito ay napakasimpleng nilulutas ng Bitrise. Iniimbak ng platform ang mga sertipiko at provisioning profile sa naka-encrypt na anyo, awtomatikong ini-install ang mga ito sa tamang keychain bago ang build at ini-export ang naka-sign na IPA. Ang Step Certificate and Profile Installer ay nagda-download ng mga file mula sa imbakan ng Bitrise at nagko-configure ng Xcode. Ang mga uri ng sertipiko na Development, AdHoc, AppStore at Enterprise ay sinusuportahan.
Para sa pag-publish sa App Store Connect, nagbibigay ang Bitrise ng Steps para sa pag-upload ng IPA sa pamamagitan ng Xcode Archive & Export. Ang pag-publish sa Google Play ay gumagamit ng Gradle Runner na may pag-sign sa pamamagitan ng Keystore, pagkatapos ay ang APK/AAB ay ina-upload sa Google Play Console sa pamamagitan ng Google Play Deploy Step. Para sa Firebase App Distribution, sapat na ang tukuyin ang Firebase Token at grupo ng mga tester. Awtomatiko ng Bitrise ang pag-update ng mga bersyon ng build (version number at build number) bago ang bawat pag-publish.
Ang mga sertipiko ay ina-upload sa seksyong Code Signing ng web interface: P12 na may pribadong key, provisioning profile (.mobileprovision), Keystore (.jks/.keystore) para sa Android. Awtomatikong ini-install ng Bitrise ang iOS certificates sa keychain sa bawat pagpapatakbo ng Workflow at ini-export ang naka-sign na app. Para sa Android, sapat na ang pag-upload ng Keystore file — ipinapasa ito ng Bitrise sa Gradle sa pamamagitan ng environment variable sa panahon ng build.
Tingnan natin ang isang Workflow para sa Flutter app na bumubuo at nag-publish ng mga build para sa iOS at Android. Awtomatikong na-detect ng Bitrise ang Flutter project at nagmumungkahi ng mga kaukulang Steps. Ang Workflow ay may kasamang pag-install ng Flutter, pag-cache ng pub-cache, pag-build, pag-test at deployment. Para sa iOS build, kailangan din ng code signing certificates na awtomatikong nilo-load ng Bitrise.
Sa pag-build ng Flutter apps, sinusuportahan ng Bitrise ang hiwalay na configuration para sa mga platform. Ang Android build ay isinasagawa sa Linux runner na may Flutter SDK, iOS sa macOS runner. Ang Workflow ay maaaring magsama ng conditional Steps: build_android at build_ios na tumatakbo lamang sa mga kaukulang platform. Para sa React Native projects, nag-aalok ang Bitrise ng katulad na set ng Steps na may npm/nvm at 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: {}
Pagkatapos ng build, maaaring idagdag ang Step Firebase App Distribution para sa iOS at Android. Tumatanggap ang Step ng firebase_token, app_id at testers_group. Pinapalitan ng Bitrise ang mga halaga mula sa Secrets — tinitiyak ng ligtas na imbakan ng mga token na hindi ito lalabas sa mga log.
- 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
Ang tamang pamamahala ng kumpidensyal na data ay ang pundasyon ng seguridad ng mga CI/CD process. Ang Bitrise Secrets ay naka-encrypt at hindi nababasa pagkatapos i-save. Sa paggawa ng bagong app, nag-aalok ang Bitrise ng pag-import ng secrets mula sa ibang proyekto o manu-manong pagtatakda. Para sa malalaking team, available ang function na Environment Groups — sentralisadong pamamahala ng mga variable at secrets para sa isang grupo ng mga app.
Nagbibigay ang Bitrise ng built-in na imbakan ng Secrets para sa kumpidensyal na data: API keys, Firebase tokens, Keystore password, Apple ID. Ang Secrets ay itinatakda bilang key-value pairs sa web interface at naka-mask sa build logs. Available sa antas ng app at antas ng Workflow. Hindi mababasa ang Secrets pagkatapos i-save — maaari lamang itong i-overwrite.
Ang Environment Variables (walang Secret label) ay ginagamit para sa mga configuration: bersyon ng Xcode, path ng proyekto, build scheme. Ang mga environment variable ng Bitrise (BITRISE_BUILD_NUMBER, BITRISE_APP_TITLE) ay nagbibigay ng meta-information tungkol sa build. Ang Secrets ay naka-encrypt sa imbakan at nade-decrypt lamang sa runner sa panahon ng pagpapatakbo ng Workflow. Para sa group management ng mga variable, sinusuportahan ng Bitrise ang Environment Groups — mga set ng variable na maaaring ilapat sa maraming app nang sabay-sabay.
Ang pamamahala ng iOS certificates sa pamamagitan ng Bitrise ay nangangailangan ng espesyal na atensyon. Awtomatikong ini-install ng platform ang P12 at provisioning profile sa system keychain bago ang build. Para sa Android, ginagamit ang Keystore file na ina-upload sa Code Signing section. Ang bawat certificate file ay naka-encrypt at nade-decrypt lamang sa panahon ng build.
- google-play-deploy@3:
inputs:
- package_name: com.example.app
- service_account_json_key: $SERVICE_ACCOUNT_KEY
- app_file: $BITRISE_APK_PATH
Nag-aalok ang Bitrise ng iba't ibang stack para sa build — pre-install na mga image na may mga tool at SDK. Available ang mga stack para sa Xcode (mga bersyon 14, 15, 16 na may iOS SDK 17, 18), para sa Android (na may iba't ibang bersyon ng SDK at NDK), para sa Flutter, React Native at Kotlin Multiplatform. Ang bawat stack ay may paglalarawan ng mga pre-install na tool at bersyon.
Ang pagpili ng stack ay nakakaapekto sa oras ng build at compatibility sa proyekto. Regular na ina-update ng Bitrise ang mga stack, nagdaragdag ng mga bagong bersyon ng mga tool. Maaaring i-pin ang isang partikular na bersyon ng stack sa bitrise.yml upang maiwasan ang hindi inaasahang pagbabago sa pag-update ng platform. Para sa custom na dependencies, ginagamit ang Script Step na nag-i-install ng mga kinakailangang package bago ang pangunahing build. Sinusuportahan din ng Bitrise ang Docker images para sa Linux stacks, na nagpapahintulot sa paggamit ng custom na kapaligiran para sa Android builds.
Mga madalas itanong
Nag-aalok ang Bitrise ng libreng plano na may 90 minutong build bawat buwan at isang concurrent build. Ang Developer ($79/buwan) ay may kasamang 3000 minuto, hanggang 5 concurrent build at lahat ng integrasyon. Enterprise — custom na pagpepresyo.
Sinusuportahan ng Bitrise ang iOS (Swift, Objective-C), Android (Kotlin, Java), Flutter, React Native, Cordova, Ionic at Xamarin. Para sa bawat platform, may mga pre-install na tool at Workflow template.
Nagbibigay ang Bitrise ng macOS runners para sa iOS build nang walang karagdagang configuration. Ang platform mismo ang namamahala ng macOS infrastructure — ang runner ay awtomatikong pinipili batay sa stack ng app.
Iniimbak ng Bitrise ang mga sertipiko sa naka-encrypt na anyo at awtomatikong ini-install ang mga ito sa keychain bago ang build sa pamamagitan ng Step Certificate and Profile Installer. Para sa Android, katulad — ang Keystore ay ina-upload at ginagamit ng Gradle sa pag-sign.
Oo, sinusuportahan ng Bitrise ang custom na Steps sa pamamagitan ng Script Step (bash script) at custom na Step Library mula sa GitHub. Maaari ka ring gumawa ng sarili mong Step ayon sa dokumentasyon ng Bitrise at i-publish ito sa Step Library.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din