Bitrise est une plateforme CI/CD spécialisée pour le développement mobile, construite autour de Steps prêts à l'emploi — des modules préconfigurés pour compiler, signer et publier des applications iOS et Android. Selon Bitrise, 2024, la plateforme prend en charge plus de 400 Steps prêts à l'emploi et s'intègre avec Xcode, Gradle, Fastlane, Firebase et App Store Connect.
Points clés
Bitrise est une plateforme CI/CD lancée en 2016 et entièrement concentrée sur le développement mobile. Contrairement aux solutions universelles comme GitHub Actions et GitLab CI, Bitrise a été conçue à l'origine pour automatiser la compilation des applications iOS et Android. La plateforme fonctionne dans le cloud et fournit ses propres runners hébergés avec macOS et Linux. Bitrise prend en charge toutes les stacks mobiles populaires : Swift, Kotlin, Flutter, React Native, Cordova et Xamarin.
Le principal avantage de Bitrise réside dans ses modèles de Step préconfigurés pour les tâches typiques de développement mobile : compilation Xcode, assemble Gradle, Fastlane, Firebase Distribution, TestFlight, Google Play. La configuration du pipeline prend quelques minutes via l'éditeur visuel, et la configuration YAML est générée automatiquement dans le fichier bitrise.yml. Pour les utilisateurs expérimentés, un éditeur YAML avec autocomplétion est disponible.
L'architecture Bitrise repose sur deux concepts clés : Workflow et Step. Un Workflow est une séquence de Steps qui définit le pipeline. Chaque projet peut avoir plusieurs Workflows : primary (compilation principale), deploy (publication), test (tests uniquement). Un Workflow est déclenché par des événements : push, PR, tag ou selon un calendrier. Les Workflows peuvent également être lancés manuellement depuis l'interface web, ce qui est utile pour les compilations ad-hoc.
Un Step est un module atomique qui exécute une seule tâche. Les Steps peuvent être glissés dans l'éditeur visuel, modifiant ainsi leur ordre et leur configuration. Bitrise fournit des Steps pour Xcode Archive & Export, Gradle Runner, CocoaPods Install, Firebase Distribution et les notifications Slack. La communauté crée également des Steps — ils sont disponibles via la Step Library. Chaque Step possède des paramètres d'entrée obligatoires et facultatifs, ainsi que des variables de sortie pouvant être utilisées par les Steps suivants.
Bitrise prend en charge le concept de Pipeline — la combinaison de plusieurs Workflows en un seul pipeline. Un Pipeline peut inclure des compilations principales pour toutes les plateformes et des workflows séparés pour le déploiement et les tests. Cela permet de créer des processus CI/CD complexes où une compilation en déclenche une autre. Les Stacks Bitrise déterminent les logiciels préinstallés sur le runner : Xcode, Android SDK, Flutter, Node.js et d'autres outils.
Bitrise s'intègre avec GitHub, GitLab, Bitbucket et Azure DevOps. Lors de la connexion d'un dépôt, Bitrise détecte automatiquement le type de projet (iOS, Android, Flutter) et suggère un modèle de Workflow. Pour les dépôts privés, Bitrise demande l'accès via OAuth ou clé SSH. Plusieurs dépôts peuvent être connectés à une seule application.
Après la connexion, Bitrise crée un webhook dans le dépôt pour lancer automatiquement les compilations lors des push et PR. Chaque compilation reçoit un numéro unique, des logs et des artefacts. L'interface permet de parcourir l'historique des compilations, de comparer les modifications et de redémarrer les builds échoués. Bitrise prend également en charge les compilations planifiées pour les builds nocturnes réguliers et l'intégration avec Jira pour le suivi des commits.
La signature de code pour iOS est l'une des tâches CI/CD les plus complexes, et Bitrise la résout de la manière la plus simple possible. La plateforme stocke les certificats et profils de provisionnement de manière cryptée, les installe automatiquement dans le keychain approprié avant la compilation et exporte l'IPA signé. Le Step Certificate and Profile Installer télécharge les fichiers depuis le stockage Bitrise et configure Xcode. Les types de certificats Development, AdHoc, AppStore et Enterprise sont pris en charge.
Pour publier sur App Store Connect, Bitrise fournit des Steps pour télécharger l'IPA via Xcode Archive & Export. La publication sur Google Play utilise Gradle Runner avec signature via Keystore, après quoi l'APK/AAB est téléchargé dans Google Play Console via Google Play Deploy Step. Pour Firebase App Distribution, il suffit de spécifier le Firebase Token et le groupe de testeurs. Bitrise automatise la mise à jour du numéro de version et du numéro de build avant chaque publication.
Les certificats sont téléchargés dans la section Code Signing de l'interface web : P12 avec clé privée, profil de provisionnement (.mobileprovision), Keystore (.jks/.keystore) pour Android. Bitrise installe automatiquement les certificats iOS dans le keychain à chaque exécution de Workflow et exporte l'application signée. Pour Android, il suffit de télécharger le fichier Keystore — Bitrise le transmet à Gradle via des variables d'environnement lors de la compilation.
Examinons un Workflow pour une application Flutter qui compile et publie des builds pour iOS et Android. Bitrise détecte automatiquement un projet Flutter et suggère les Steps appropriés. Le Workflow comprend l'installation de Flutter, la mise en cache pub-cache, la compilation, les tests et le déploiement. Pour les compilations iOS, des certificats de signature de code sont en outre nécessaires, que Bitrise charge automatiquement.
Lors de la compilation d'applications Flutter, Bitrise prend en charge une configuration distincte pour chaque plateforme. Les compilations Android s'exécutent sur un runner Linux avec Flutter SDK, iOS sur un runner macOS. Un Workflow peut inclure des Steps conditionnels : build_android et build_ios, qui s'exécutent uniquement sur leurs plateformes respectives. Pour les projets React Native, Bitrise propose un ensemble similaire de Steps avec npm/nvm et 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: {}
Après la compilation, un Step Firebase App Distribution peut être ajouté pour iOS et Android. Le Step accepte firebase_token, app_id et testers_group. Bitrise substitue les valeurs de Secrets — le stockage sécurisé des jetons garantit qu'ils n'apparaissent pas dans les logs.
- 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
Une gestion appropriée des données confidentielles est le fondement de la sécurité des processus CI/CD. Les Secrets Bitrise sont cryptés et illisibles après leur enregistrement. Lors de la création d'une nouvelle application, Bitrise propose d'importer des secrets depuis un autre projet ou de les définir manuellement. Pour les grandes équipes, la fonction Environment Groups est disponible — gestion centralisée des variables et secrets pour un groupe d'applications.
Bitrise fournit un stockage intégré de Secrets pour les données confidentielles : clés API, jetons Firebase, mots de passe Keystore, Apple ID. Les Secrets sont définis comme des paires clé-valeur dans l'interface web et sont masqués dans les logs de compilation. Ils sont disponibles au niveau de l'application et au niveau du Workflow. Les Secrets ne peuvent pas être lus après leur enregistrement — ils ne peuvent être que écrasés.
Les Variables d'Environnement (sans le marquage Secret) sont utilisées pour la configuration : version de Xcode, chemin du projet, schéma de compilation. Les variables d'environnement Bitrise (BITRISE_BUILD_NUMBER, BITRISE_APP_TITLE) fournissent des méta-informations sur la compilation. Les Secrets sont cryptés au repos et ne sont déchiffrés que sur le runner pendant l'exécution du Workflow. Pour la gestion groupée des variables, Bitrise prend en charge les Environment Groups — des ensembles de variables applicables à plusieurs applications simultanément.
Une mention spéciale mérite la gestion des certificats iOS via Bitrise. La plateforme installe automatiquement P12 et les profils de provisionnement dans le keychain système avant la compilation. Pour Android, le fichier Keystore est utilisé, téléchargé dans la section Code Signing. Chaque fichier de certificat est stocké crypté et n'est déchiffré que pendant la compilation.
- google-play-deploy@3:
inputs:
- package_name: com.example.app
- service_account_json_key: $SERVICE_ACCOUNT_KEY
- app_file: $BITRISE_APK_PATH
Bitrise propose différents stacks pour la compilation — des images préinstallées avec des outils et SDK. Les stacks disponibles incluent Xcode (versions 14, 15, 16 avec iOS SDK 17, 18), Android (avec différentes versions de SDK et NDK), Flutter, React Native et Kotlin Multiplatform. Chaque stack dispose d'une description des outils et versions préinstallés.
Le choix du stack affecte le temps de compilation et la compatibilité avec le projet. Bitrise met régulièrement à jour les stacks, ajoutant de nouvelles versions d'outils. On peut fixer une version spécifique du stack dans bitrise.yml pour éviter des changements inattendus lors de la mise à jour de la plateforme. Pour les dépendances personnalisées, le Script Step est utilisé pour installer les paquets nécessaires avant la compilation principale. Bitrise prend également en charge les images Docker pour les stacks Linux, permettant des environnements personnalisés pour les compilations Android.
Questions fréquentes
Bitrise propose un plan gratuit avec 90 minutes de compilation par mois et une compilation simultanée. Developer (79 $/mois) inclut 3000 minutes, jusqu'à 5 compilations simultanées et toutes les intégrations. Enterprise — tarification personnalisée.
Bitrise prend en charge iOS (Swift, Objective-C), Android (Kotlin, Java), Flutter, React Native, Cordova, Ionic et Xamarin. Chaque plateforme dispose d'outils préinstallés et de modèles de Workflow.
Bitrise fournit des runners macOS pour les compilations iOS sans configuration supplémentaire. La plateforme gère l'infrastructure macOS automatiquement — le runner est sélectionné en fonction du stack de l'application.
Bitrise stocke les certificats de manière cryptée et les installe automatiquement dans le keychain avant la compilation via le Step Certificate and Profile Installer. Pour Android, de même — le Keystore est téléchargé et utilisé par Gradle lors de la signature.
Oui, Bitrise prend en charge les Steps personnalisés via le Script Step (script bash) et les Step Libraries personnalisées depuis GitHub. Vous pouvez également créer votre propre Step selon la documentation Bitrise et le publier dans la Step Library.
Résumé
Nous développerons une application mobile clé en main
IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.