Ruby dans le développement mobile : Fastlane, CI/CD et automatisation

Auteur : IT Sectr Publié le : 2026-02-11 Temps de lecture : 8 min

Ruby est un langage dynamique interprété à la syntaxe élégante, connu pour le framework Ruby on Rails. Dans le développement mobile, Ruby est utilisé principalement via Fastlane — l'outil standard pour automatiser les builds, les tests et le déploiement des applications iOS et Android. Selon la documentation officielle de Fastlane, l'outil est utilisé dans plus de 100 000 projets dans le monde.

Points clés

  • Ruby — un langage dynamique utilisé dans le développement mobile via Fastlane pour l'automatisation des builds
  • Fastlane — le standard de facto pour CI/CD dans le développement iOS et Android, écrit en Ruby
  • Fastfile — un fichier de configuration utilisant un DSL similaire à Ruby décrivant le processus de build
  • Match et Deliver — des actions Fastlane pour la gestion des certificats et la publication sur l'App Store
  • Ruby Gems — un gestionnaire de paquets permettant d'étendre Fastlane avec des plugins

Qu'est-ce que Ruby ?

Ruby est un langage dynamique interprété open source créé par Yukihiro Matsumoto en 1995. Le principe fondamental de Ruby est la « simplicité optimale » (principe de moindre surprise). Le langage est connu pour ses blocs (closures), son approche purement orientée objet (tout est un objet, y compris les nombres) et son puissant système de métaprogrammation.

Ruby fonctionne sur l'interpréteur YARV (Yet Another Ruby VM) avec compilation JIT depuis la version 3.1. La version actuelle Ruby 3.4 (2025) inclut des décorateurs, un analyseur Prism amélioré et un support expérimental des types via RBS. RubyGems — le gestionnaire de paquets — contient plus de 200 000 gems.

Ruby on Rails est le framework web le plus célèbre construit avec Ruby, mais dans le développement mobile, Ruby est utilisé différemment. Son créneau principal est Fastlane : un écosystème de scripts Ruby et de gems pour automatiser toutes les étapes du cycle de vie d'une application mobile — de la signature de code à la publication sur les magasins.

Syntaxe Ruby de base pour Fastlane

Travailler avec Fastlane nécessite seulement une compréhension de base de Ruby : méthodes, blocs do-end, symboles (:symbol) et syntaxe des hachages { key: value }. Contrairement à Python, Ruby utilise end pour fermer les blocs au lieu de l'indentation. Les méthodes peuvent être appelées sans parenthèses — cela est activement utilisé dans le DSL de Fastlane.

ruby
# Syntaxe Ruby de base utilisée dans Fastlane
def download_assets(version, platform: "ios")
  paths = {
    ios: "ios/Assets.car",
    android: "android/app/src/main/assets"
  }
  url = "https://cdn.example.com/assets/#{version}/#{paths[platform.to_sym]}"
  puts "Downloading from: #{url}"

  unless File.exist?("temp/assets")
    Dir.mkdir("temp/assets")
  end
  result = system("curl -o temp/assets.zip #{url}")
  raise "Download failed" unless result
end

download_assets("1.2.3", platform: "android")

Dans l'exemple, la méthode download_assets prend un argument version et un paramètre nommé optionnel platform (par défaut "ios"). L'interpolation de chaînes avec #{...} intègre les valeurs directement dans les chaînes. unless est l'inverse de if — il exécute le code quand la condition est fausse.

Fastlane : automatisation des builds mobiles avec Ruby

Fastlane est un outil open source écrit en Ruby. Installé via gem install fastlane, il fournit un ensemble de commandes pour automatiser les tâches les plus routinières du développeur mobile : création de captures d'écran, signature de code, publication sur TestFlight et Google Play Console.

Fastlane se compose d'outils : sigh (gestion des certificats), match (synchronisation des certificats en équipe), gym (builds iOS), gradle (builds Android), deliver (publication iOS), supply (publication Android), snapshot (captures d'écran), scan (tests). Tous les outils sont accessibles depuis un seul Fastfile.

Dans les grands projets, Fastlane gère plus de 50 actions dans un seul pipeline : incrémentation de version, téléchargement d'assets depuis un CDN, build, signature, téléversement vers App Store Connect, envoi de notifications Slack. L'ensemble du pipeline s'exécute avec une seule commande : fastlane release.

Fastfile : configuration du pipeline de build

Fastfile est un fichier DSL similaire à Ruby décrivant une séquence d'actions (lanes). Chaque lane est une tâche distincte : beta (build de test), release, screenshots. Les lanes peuvent appeler d'autres lanes avec des paramètres passés.

ruby
# Fastfile — configuration du pipeline de build d'application iOS
fastlane_version "2.220.0"

default_platform :ios

platform :ios do
  desc "Construction et déploiement du build TestFlight"
  lane :beta do |options|
    increment_build_number(
      build_number: options[:build]
    )
    match(type: :appstore)
    gym(
      scheme: "MyApp",
      export_method: "app-store",
      configuration: "Release"
    )
    upload_to_testflight(
      app_identifier: "com.example.myapp"
    )
    slack(
      message: "Build #{options[:build]} téléversé dans TestFlight"
    )
  end
end

La lane beta exécute séquentiellement : incrémenter le numéro de build (increment_build_number), synchroniser les certificats (match), compiler l'archive (gym), téléverser vers TestFlight (upload_to_testflight) et envoyer une notification Slack. Le paramètre :build est passé à la lane comme argument nommé.

Configuration Android dans Fastfile

Fastlane prend en charge les deux plates-formes dans un seul Fastfile. Pour Android, utilisez une lane dans platform :android avec les actions gradle, supply et google_play_track_version_codes.

ruby
platform :android do
  desc "Construction de l'APK et publication dans Google Play Internal Testing"
  lane :beta do
    gradle(
      task: "assemble",
      build_type: "Release",
      flavor: "Production"
    )
    supply(
      track: "internal",
      apk_paths: ["app/build/outputs/apk/release/app-release.apk"]
    )
  end
end

Actions clés de Fastlane pour iOS et Android

Fastlane comprend plus de 200 actions intégrées. Voici les plus importantes pour le développement mobile, organisées par catégorie.

ActionPlateformeObjectif
matchiOSSynchroniser les certificats et profils de provisionnement via Git
gymiOSCompiler les archives .app et .ipa
scaniOSExécuter les tests UI sur simulateur
snapshotiOSGénération automatique de captures d'écran sur différents appareils
deliveriOSTéléverser build, captures et métadonnées vers App Store Connect
pilotiOSGestion TestFlight : téléverser des builds, ajouter des testeurs
gradleAndroidExécuter des tâches Gradle : assemble, test, bundle
supplyAndroidTéléverser APK/AAB et métadonnées vers Google Play Console
screengrabAndroidCaptures d'écran automatiques pour Google Play
firebase_app_distributionLes deuxTéléverser le build vers Firebase App Distribution

Match : gestion sécurisée des certificats

match est une gem Fastlane pour synchroniser les certificats iOS et les profils de provisionnement entre les développeurs. Tous les secrets sont stockés dans un dépôt Git chiffré ou S3. Match génère automatiquement les certificats s'ils manquent et les renouvelle à l'expiration.

ruby
# Initialisation de match pour un nouveau projet
$ fastlane match init

# Création et synchronisation des certificats App Store
$ fastlane match appstore

# Création de certificats Development pour l'équipe
$ fastlane match development

# Renouvellement de tous les certificats à l'expiration
$ fastlane match --force

Match stocke les clés privées avec une phrase de passe connue uniquement des développeurs. Chaque développeur clone le dépôt de certificats et exécute match pour installer les profils actuels. Les certificats Apple sont valables 1 an ; match les renouvelle automatiquement.

Intégration de Fastlane avec les systèmes CI/CD

Fastlane s'intègre avec toutes les plateformes CI/CD : GitHub Actions, GitLab CI, CircleCI, Bitrise, Jenkins et Xcode Cloud (via xcode-build). Fastlane s'exécute sur CI avec fastlane <lane_name> et renvoie un code d'erreur en cas d'échec d'une étape.

La configuration pour GitHub Actions comprend l'installation de Ruby, fastlane et l'exécution de la lane via bundle exec fastlane. Les builds iOS nécessitent un runner macOS. Les builds Android peuvent utiliser ubuntu-latest, ce qui est moins cher.

yaml
# .github/workflows/deploy.yml — CI/CD avec Fastlane
name: Deploy Mobile App
on:
  push:
    branches: [main]

jobs:
  ios-deploy:
    runs-on: macos-14
    steps:
      - uses: actions/checkout@v4
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: "3.3"
      - run: bundle install
      - run: bundle exec fastlane beta
      - env:
          MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}

Le workflow s'exécute lors d'un push sur main. Le runner macOS exécute bundle exec fastlane beta depuis le Fastfile. MATCH_PASSWORD est transmise via GitHub Secrets pour le déchiffrement des certificats. Après la fin de la lane, une action Slack envoie une notification.

Ruby Gems et plugins Fastlane

RubyGems est le gestionnaire de paquets pour Ruby. Fastlane est étendu via des plugins — des gems qui ajoutent de nouvelles actions. Le plugin fastlane-plugin-versioning gère les versions, fastlane-plugin-firebase_app_distribution téléverse les builds vers Firebase. Il y a plus de 500 plugins Fastlane sur GitHub.

Le Gemfile à la racine du projet fixe les versions de toutes les dépendances pour des builds reproductibles. bundle install installe les gems depuis Gemfile.lock. Les gems essentielles pour le développement mobile incluent : fastlane, cocoapods (dépendances iOS), xcodeproj (manipulation .xcodeproj).

ruby
# Gemfile pour un projet mobile
source "https://rubygems.org"

gem "fastlane", "~> 2.220"

plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)

Fastlane vs alternatives : comparaison des approches

Fastlane n'est pas le seul outil d'automatisation. Comparons-le avec les principales alternatives selon des critères importants pour une équipe mobile.

CritèreFastlane (Ruby)Bitrise (web)Xcode Cloud (Apple)GitHub Actions (YAML)
FlexibilitéMaximale (code)Moyenne (étapes)Faible (limité)Élevée
iOSSupport completCompletComplet (intégré)Via macOS auto-hébergé
AndroidSupport completCompletNonComplet
Certificats (match)IntégréVia Code SigningAutomatiqueVia fastlane
Exécution localeOuiNon (CI seulement)NonVia act
Plugins500+200+ intégrationsAucun20 000+ actions

Fastlane reste l'outil le plus flexible pour les pipelines complexes. Bitrise est pratique pour les équipes sans développeur Ruby. Xcode Cloud convient aux projets iOS simples. GitHub Actions est idéal si l'équipe utilise déjà GitHub.

Questions fréquentes

Pourquoi utiliser Ruby dans le développement mobile alors que Kotlin et Swift existent ?

Ruby n'est pas utilisé pour écrire des applications mobiles, mais pour automatiser les processus de build, de test et de déploiement via Fastlane. Fastlane est le standard de facto pour CI/CD dans le développement iOS et Android.

Fastlane fonctionne-t-il seulement sur macOS ?

Fastlane fonctionne sur macOS, Linux et Windows, mais les builds iOS nécessitent Xcode et macOS. Les builds Android peuvent s'exécuter sur n'importe quelle plateforme. Les développeurs utilisent macOS localement, et sur CI — macOS pour iOS et Linux pour Android.

Dois-je apprendre Ruby pour travailler avec Fastlane ?

Une compréhension de base de Ruby suffit pour travailler avec Fastlane. Fastlane utilise un DSL similaire à Ruby dans le Fastfile. Pour les tâches typiques, la connaissance des gems, des blocs do-end et de la syntaxe de base suffit. Une connaissance approfondie de Ruby n'est pas nécessaire.

Quelles alternatives à Fastlane existent ?

Alternatives : Gradle pour Android (intégré), Xcode Cloud (Apple), Bitrise (interface web), GitHub Actions (YAML). Fastlane reste l'outil le plus flexible grâce à son riche écosystème d'actions et de plugins.

Fastlane est-il adapté aux grandes équipes ?

Oui, Fastlane est utilisé par de grandes entreprises. Toutes les actions et fichiers de configuration sont versionnés dans le dépôt, et match garantit le stockage sécurisé des certificats dans un dépôt ou S3.

Résumé

  • Ruby — un langage dynamique utilisé dans le développement mobile via l'écosystème Fastlane pour l'automatisation des builds
  • Fastlane — le standard CI/CD pour iOS et Android : plus de 200 actions, plus de 500 plugins, plus de 100 000 projets
  • Fastfile — un DSL similaire à Ruby avec des lanes : beta, release, screenshots pour différents scénarios de build
  • Match résout le problème de synchronisation des certificats iOS et des profils de provisionnement entre développeurs
  • Deliver et Supply — actions pour publier sur l'App Store et Google Play avec métadonnées et captures d'écran
  • Intégration CI/CD — Fastlane fonctionne avec GitHub Actions, GitLab CI, CircleCI et Bitrise
  • Flexibilité — Fastlane surpasse Bitrise et Xcode Cloud grâce à un pipeline programmable en Ruby

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.

Discuter du projet

Lisez aussi