Bitrise adalah platform CI/CD khusus untuk pengembangan seluler, dibangun di sekitar Steps siap pakai — modul yang telah dikonfigurasi sebelumnya untuk membangun, menandatangani, dan mempublikasikan aplikasi iOS dan Android. Menurut Bitrise, 2024, platform ini mendukung lebih dari 400 Steps siap pakai dan terintegrasi dengan Xcode, Gradle, Fastlane, Firebase dan App Store Connect.
Poin utama
Bitrise adalah platform CI/CD yang diluncurkan pada tahun 2016 dan sepenuhnya berfokus pada pengembangan seluler. Berbeda dengan solusi universal GitHub Actions dan GitLab CI, Bitrise sejak awal dirancang untuk mengotomatiskan build aplikasi iOS dan Android. Platform ini berjalan di cloud dan menyediakan runner-hosted sendiri dengan macOS dan Linux. Bitrise mendukung semua stack seluler populer: Swift, Kotlin, Flutter, React Native, Cordova dan Xamarin.
Keunggulan utama Bitrise adalah template Step yang telah dikonfigurasi sebelumnya untuk tugas-tugas umum pengembangan seluler: Xcode build, Gradle assemble, Fastlane, Firebase Distribution, TestFlight, Google Play. Konfigurasi pipeline hanya membutuhkan waktu menit melalui editor visual, dan konfigurasi YAML dihasilkan secara otomatis dalam file bitrise.yml. Untuk pengguna berpengalaman, tersedia editor YAML dengan pelengkapan otomatis.
Arsitektur Bitrise dibangun di atas dua konsep kunci: Workflow dan Step. Workflow adalah urutan Steps yang menentukan pipeline. Setiap proyek dapat memiliki beberapa Workflow: primary (build utama), deploy (publikasi), test (hanya tes). Workflow dipicu oleh trigger: push, PR, tag atau sesuai jadwal. Workflow dapat dijalankan secara manual dari antarmuka web, yang berguna untuk build ad-hoc.
Step adalah modul atom yang menjalankan satu tugas. Langkah-langkah dapat diseret di editor visual, urutan dan konfigurasinya dapat diubah. Bitrise menyediakan Steps untuk Xcode Archive & Export, Gradle Runner, CocoaPods Install, Firebase Distribution, notifikasi Slack. Komunitas juga membuat Steps — tersedia melalui Step Library. Setiap Step memiliki parameter input wajib dan opsional, serta variabel output yang dapat digunakan oleh Steps berikutnya.
Bitrise mendukung konsep Pipeline — menggabungkan beberapa Workflow menjadi satu pipeline. Pipeline dapat mencakup build utama untuk semua platform dan workflow terpisah untuk deployment dan pengujian. Ini memungkinkan pembuatan proses CI/CD yang kompleks di mana satu build memicu build lainnya. Stacks Bitrise menentukan perangkat lunak yang telah diinstal sebelumnya pada runner: Xcode, Android SDK, Flutter, Node.js dan alat lainnya.
Bitrise terintegrasi dengan GitHub, GitLab, Bitbucket dan Azure DevOps. Saat menghubungkan repositori, Bitrise secara otomatis mendeteksi jenis proyek (iOS, Android, Flutter) dan menawarkan template Workflow. Untuk repositori pribadi, Bitrise meminta akses melalui OAuth atau kunci SSH. Menghubungkan beberapa repositori ke satu aplikasi didukung.
Setelah terhubung, Bitrise membuat webhook di repositori untuk memulai build secara otomatis saat push dan PR. Setiap build menerima nomor unik, log dan artefak. Antarmuka memungkinkan melihat riwayat build, membandingkan perubahan dan memulai ulang build yang gagal. Bitrise juga mendukung build terjadwal untuk build malam reguler dan integrasi dengan Jira untuk melacak commit.
Code signing untuk iOS adalah salah satu tugas CI/CD yang paling sulit, dan Bitrise menyelesaikannya dengan sangat sederhana. Platform menyimpan sertifikat dan provisioning profile dalam bentuk terenkripsi, secara otomatis menginstalnya di keychain yang sesuai sebelum build dan mengekspor IPA yang ditandatangani. Step Certificate and Profile Installer mengunduh file dari penyimpanan Bitrise dan mengonfigurasi Xcode. Tipe sertifikat Development, AdHoc, AppStore dan Enterprise didukung.
Untuk publikasi di App Store Connect, Bitrise menyediakan Steps untuk mengunggah IPA melalui Xcode Archive & Export. Publikasi Google Play menggunakan Gradle Runner dengan penandatanganan melalui Keystore, setelah itu APK/AAB diunggah ke Google Play Console melalui Google Play Deploy Step. Untuk Firebase App Distribution, cukup menentukan Firebase Token dan grup penguji. Bitrise mengotomatiskan pembaruan versi build (version number dan build number) sebelum setiap publikasi.
Sertifikat diunggah di bagian Code Signing antarmuka web: P12 dengan kunci privat, provisioning profile (.mobileprovision), Keystore (.jks/.keystore) untuk Android. Bitrise secara otomatis menginstal sertifikat iOS di keychain setiap kali Workflow dijalankan dan mengekspor aplikasi yang ditandatangani. Untuk Android, cukup mengunggah file Keystore — Bitrise meneruskannya ke Gradle melalui variabel lingkungan saat build.
Mari kita lihat Workflow untuk aplikasi Flutter yang membangun dan mempublikasikan build untuk iOS dan Android. Bitrise secara otomatis mendeteksi proyek Flutter dan menawarkan Steps yang sesuai. Workflow mencakup instalasi Flutter, caching pub-cache, build, pengujian dan deployment. Untuk build iOS, diperlukan sertifikat code signing tambahan yang dimuat Bitrise secara otomatis.
Saat membangun aplikasi Flutter, Bitrise mendukung konfigurasi terpisah untuk platform. Build Android dijalankan pada Linux runner dengan Flutter SDK, iOS pada macOS runner. Workflow dapat menyertakan Steps bersyarat: build_android dan build_ios yang hanya berjalan di platform yang sesuai. Untuk proyek React Native, Bitrise menawarkan set Steps serupa dengan npm/nvm dan 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: {}
Setelah build, dapat ditambahkan Step Firebase App Distribution untuk iOS dan Android. Step menerima firebase_token, app_id dan testers_group. Bitrise mengganti nilai dari Secrets — penyimpanan token yang aman memastikan token tidak muncul di 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
Manajemen data rahasia yang benar adalah dasar keamanan proses CI/CD. Bitrise Secrets dienkripsi dan tidak dapat dibaca setelah disimpan. Saat membuat aplikasi baru, Bitrise menawarkan untuk mengimpor secrets dari proyek lain atau mengaturnya secara manual. Untuk tim besar, tersedia fitur Environment Groups — manajemen terpusat variabel dan secrets untuk grup aplikasi.
Bitrise menyediakan penyimpanan Secrets bawaan untuk data rahasia: kunci API, token Firebase, kata sandi Keystore, Apple ID. Secrets diatur sebagai pasangan kunci-nilai di antarmuka web dan disembunyikan di log build. Tersedia di tingkat aplikasi dan tingkat Workflow. Secrets tidak dapat dibaca setelah disimpan — hanya dapat ditimpa.
Environment Variables (tanpa label Secret) digunakan untuk konfigurasi: versi Xcode, jalur proyek, skema build. Variabel lingkungan Bitrise (BITRISE_BUILD_NUMBER, BITRISE_APP_TITLE) menyediakan meta-informasi tentang build. Secrets dienkripsi saat disimpan dan didekripsi hanya di runner selama eksekusi Workflow. Untuk manajemen variabel grup, Bitrise mendukung Environment Groups — set variabel yang dapat diterapkan ke beberapa aplikasi secara bersamaan.
Manajemen sertifikat iOS melalui Bitrise memerlukan perhatian khusus. Platform secara otomatis menginstal P12 dan provisioning profile di keychain sistem sebelum build. Untuk Android, file Keystore digunakan yang diunggah di bagian Code Signing. Setiap file sertifikat disimpan dalam bentuk terenkripsi dan didekripsi hanya selama build.
- google-play-deploy@3:
inputs:
- package_name: com.example.app
- service_account_json_key: $SERVICE_ACCOUNT_KEY
- app_file: $BITRISE_APK_PATH
Bitrise menawarkan berbagai stack untuk build — gambar yang telah diinstal sebelumnya dengan alat dan SDK. Stack tersedia untuk Xcode (versi 14, 15, 16 dengan iOS SDK 17, 18), untuk Android (dengan berbagai versi SDK dan NDK), untuk Flutter, React Native dan Kotlin Multiplatform. Setiap stack memiliki deskripsi alat dan versi yang telah diinstal sebelumnya.
Pemilihan stack mempengaruhi waktu build dan kompatibilitas dengan proyek. Bitrise secara teratur memperbarui stack, menambahkan versi baru alat. Versi stack tertentu dapat ditetapkan di bitrise.yml untuk menghindari perubahan tak terduga saat pembaruan platform. Untuk dependensi kustom, Script Step digunakan, yang menginstal paket yang diperlukan sebelum build utama. Bitrise juga mendukung gambar Docker untuk Linux stacks, memungkinkan penggunaan lingkungan kustom untuk build Android.
Pertanyaan yang sering diajukan
Bitrise menawarkan paket gratis dengan 90 menit build per bulan dan satu concurrent build. Developer ($79/bulan) mencakup 3000 menit, hingga 5 concurrent build dan semua integrasi. Enterprise — harga khusus.
Bitrise mendukung iOS (Swift, Objective-C), Android (Kotlin, Java), Flutter, React Native, Cordova, Ionic dan Xamarin. Untuk setiap platform tersedia alat yang telah diinstal sebelumnya dan template Workflow.
Bitrise menyediakan macOS runner untuk build iOS tanpa konfigurasi tambahan. Platform sendiri mengelola infrastruktur macOS — runner dipilih secara otomatis berdasarkan stack aplikasi.
Bitrise menyimpan sertifikat dalam bentuk terenkripsi dan secara otomatis menginstalnya di keychain sebelum build melalui Step Certificate and Profile Installer. Untuk Android serupa — Keystore diunggah dan digunakan oleh Gradle saat penandatanganan.
Ya, Bitrise mendukung Steps kustom melalui Script Step (skrip bash) dan Step Library kustom dari GitHub. Anda juga dapat membuat Step sendiri sesuai dokumentasi Bitrise dan mempublikasikannya di Step Library.
Ringkasan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga