Bitrise je specializovaná CI/CD platforma pro mobilní vývoj, postavená kolem hotových Steps — předem nakonfigurovaných modulů pro sestavení, podepisování a publikování iOS a Android aplikací. Podle údajů Bitrise, 2024 platforma podporuje více než 400 hotových Steps a integruje se s Xcode, Gradle, Fastlane, Firebase a App Store Connect.
Hlavní body
Bitrise je CI/CD platforma spuštěná v roce 2016, plně zaměřená na mobilní vývoj. Na rozdíl od univerzálních řešení GitHub Actions a GitLab CI byl Bitrise od počátku navržen pro automatizaci sestavování iOS a Android aplikací. Platforma běží v cloudu a poskytuje vlastní hostované runnery s macOS a Linuxem. Bitrise podporuje všechny populární mobilní stacky: Swift, Kotlin, Flutter, React Native, Cordova a Xamarin.
Hlavní výhodou Bitrise jsou předem nakonfigurované Step šablony pro typické úkoly mobilního vývoje: Xcode build, Gradle assemble, Fastlane, Firebase Distribution, TestFlight, Google Play. Konfigurace pipeline trvá minuty prostřednictvím vizuálního editoru a konfigurace YAML je automaticky generována v souboru bitrise.yml. Pro pokročilé uživatele je k dispozici YAML editor s automatickým doplňováním.
Architektura Bitrise je postavena na dvou klíčových konceptech: Workflow a Step. Workflow je sekvence Steps definující pipeline. Každý projekt může mít několik Workflow: primary (hlavní sestavení), deploy (publikování), test (pouze testy). Workflow je spouštěno triggery: push, PR, tag nebo podle plánu. Workflow lze spustit ručně z webového rozhraní, což je užitečné pro ad-hoc sestavení.
Step je atomický modul vykonávající jeden úkol. Kroky lze přetahovat ve vizuálním editoru, měnit jejich pořadí a konfiguraci. Bitrise poskytuje Steps pro Xcode Archive & Export, Gradle Runner, CocoaPods Install, Firebase Distribution, Slack notifikace. Komunita také vytváří Steps — jsou dostupné přes Step Library. Každý Step má povinné a volitelné vstupní parametry a také výstupní proměnné, které mohou být použity následujícími Steps.
Bitrise podporuje koncept Pipeline — spojení několika Workflow do jednoho pipeline. Pipeline může zahrnovat hlavní sestavení pro všechny platformy a samostatné workflow pro nasazení a testování. To umožňuje vytvářet složité CI/CD procesy, kde jedno sestavení spouští další. Bitrise Stacks určují předinstalovaný software na runneru: Xcode, Android SDK, Flutter, Node.js a další nástroje.
Bitrise se integruje s GitHub, GitLab, Bitbucket a Azure DevOps. Při připojení repozitáře Bitrise automaticky detekuje typ projektu (iOS, Android, Flutter) a nabízí šablonu Workflow. Pro soukromé repozitáře Bitrise vyžaduje přístup přes OAuth nebo SSH klíč. Podporováno je připojení více repozitářů k jedné aplikaci.
Po připojení Bitrise vytvoří webhook v repozitáři pro automatické spouštění sestavení při push a PR. Každé sestavení obdrží jedinečné číslo, logy a artefakty. Rozhraní umožňuje prohlížet historii sestavení, porovnávat změny a restartovat neúspěšná sestavení. Bitrise také podporuje plánovaná sestavení pro pravidelné noční buildy a integraci s Jira pro sledování commitů.
Code signing pro iOS je jedním z nejobtížnějších úkolů CI/CD a Bitrise ho řeší mimořádně jednoduše. Platforma ukládá certifikáty a provisioning profily v šifrované podobě, automaticky je instaluje do příslušného keychain před sestavením a exportuje podepsaný IPA. Step Certificate and Profile Installer stahuje soubory z úložiště Bitrise a konfiguruje Xcode. Podporovány jsou typy certifikátů Development, AdHoc, AppStore a Enterprise.
Pro publikování v App Store Connect poskytuje Bitrise Steps pro nahrání IPA přes Xcode Archive & Export. Publikování v Google Play používá Gradle Runner s podpisem přes Keystore, po kterém je APK/AAB nahrán do Google Play Console přes Google Play Deploy Step. Pro Firebase App Distribution stačí zadat Firebase Token a skupinu testerů. Bitrise automatizuje aktualizaci verzí sestavení (version number a build number) před každým publikováním.
Certifikáty se nahrávají do sekce Code Signing webového rozhraní: P12 s privátním klíčem, provisioning profil (.mobileprovision), Keystore (.jks/.keystore) pro Android. Bitrise automaticky instaluje iOS certifikáty do keychain při každém spuštění Workflow a exportuje podepsanou aplikaci. Pro Android stačí nahrát Keystore soubor — Bitrise jej předá Gradle přes proměnné prostředí během sestavení.
Podívejme se na Workflow pro Flutter aplikaci, která vytváří a publikuje sestavení pro iOS a Android. Bitrise automaticky detekuje Flutter projekt a nabízí odpovídající Steps. Workflow zahrnuje instalaci Flutter, cache pub-cache, sestavení, testování a nasazení. Pro iOS sestavení jsou navíc vyžadovány certifikáty code signing, které Bitrise načítá automaticky.
Při sestavování Flutter aplikací Bitrise podporuje samostatnou konfiguraci pro platformy. Android sestavení se provádí na Linux runneru s Flutter SDK, iOS na macOS runneru. Workflow může zahrnovat podmíněné Steps: build_android a build_ios, které se spouštějí pouze na odpovídajících platformách. Pro React Native projekty Bitrise nabízí podobnou sadu Steps s npm/nvm a Metro bundlerem.
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: {}
Po sestavení lze přidat Step Firebase App Distribution pro iOS a Android. Step přijímá firebase_token, app_id a testers_group. Bitrise dosazuje hodnoty z Secrets — bezpečné uložení tokenů zaručuje, že se nedostanou do 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
Správné řízení důvěrných údajů je základem bezpečnosti CI/CD procesů. Bitrise Secrets jsou šifrovány a po uložení nečitelné. Při vytváření nové aplikace Bitrise nabízí import secrets z jiného projektu nebo ruční nastavení. Pro velké týmy je k dispozici funkce Environment Groups — centralizovaná správa proměnných a secrets pro skupinu aplikací.
Bitrise poskytuje vestavěné úložiště Secrets pro důvěrné údaje: API klíče, Firebase tokeny, Keystore hesla, Apple ID. Secrets se nastavují jako páry klíč-hodnota ve webovém rozhraní a maskují se v logách sestavení. Jsou dostupné na úrovni aplikace a na úrovni Workflow. Secrets nelze po uložení přečíst — lze je pouze přepsat.
Environment Variables (bez označení Secret) se používají pro konfigurace: verze Xcode, cesta k projektu, schéma sestavení. Proměnné prostředí Bitrise (BITRISE_BUILD_NUMBER, BITRISE_APP_TITLE) poskytují meta-informace o sestavení. Secrets se šifrují při ukládání a dešifrují se pouze na runneru během provádění Workflow. Pro skupinovou správu proměnných Bitrise podporuje Environment Groups — sady proměnných použitelných pro více aplikací současně.
Správa iOS certifikátů prostřednictvím Bitrise vyžaduje zvláštní pozornost. Platforma automaticky instaluje P12 a provisioning profil do systémového keychain před sestavením. Pro Android se používá Keystore soubor nahraný v sekci Code Signing. Každý soubor certifikátu je uložen v šifrované podobě a dešifrován pouze během sestavení.
- google-play-deploy@3:
inputs:
- package_name: com.example.app
- service_account_json_key: $SERVICE_ACCOUNT_KEY
- app_file: $BITRISE_APK_PATH
Bitrise nabízí různé stacky pro sestavení — předinstalované obrazy s nástroji a SDK. Dostupné stacky pro Xcode (verze 14, 15, 16 s iOS SDK 17, 18), pro Android (s různými verzemi SDK a NDK), pro Flutter, React Native a Kotlin Multiplatform. Každý stack má popis předinstalovaných nástrojů a verzí.
Výběr stacku ovlivňuje dobu sestavení a kompatibilitu s projektem. Bitrise pravidelně aktualizuje stacky a přidává nové verze nástrojů. Konkrétní verzi stacku lze zafixovat v bitrise.yml, aby se předešlo neočekávaným změnám při aktualizaci platformy. Pro vlastní závislosti se používá Script Step, který instaluje potřebné balíčky před hlavním sestavením. Bitrise také podporuje Docker obrazy pro Linux stacky, což umožňuje použití vlastního prostředí pro Android sestavení.
Často kladené otázky
Bitrise nabízí bezplatný plán s 90 minutami sestavení měsíčně a jedním concurrent buildem. Developer (79$/měsíc) zahrnuje 3000 minut, až 5 concurrent buildů a všechny integrace. Enterprise — individuální ceny.
Bitrise podporuje iOS (Swift, Objective-C), Android (Kotlin, Java), Flutter, React Native, Cordova, Ionic a Xamarin. Pro každou platformu jsou k dispozici předinstalované nástroje a šablony Workflow.
Bitrise poskytuje macOS runnery pro iOS sestavení bez dodatečné konfigurace. Platforma sama spravuje macOS infrastrukturu — runner je vybrán automaticky podle stacku aplikace.
Bitrise ukládá certifikáty v šifrované podobě a automaticky je instaluje do keychain před sestavením prostřednictvím Step Certificate and Profile Installer. Pro Android obdobně — Keystore je nahrán a používán Gradlem při podepisování.
Ano, Bitrise podporuje vlastní Steps prostřednictvím Script Step (bash skript) a vlastní Step Library z GitHubu. Můžete také vytvořit vlastní Step podle dokumentace Bitrise a publikovat jej v Step Library.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také