Fastlane est un outil open source pour automatiser le build, les tests et la publication d’applications iOS et Android. Au lieu d’exécuter manuellement une dizaine de commandes pour la signature, le build et le téléchargement dans le magasin, le développeur décrit tout le processus dans un Fastfile et l’exécute avec une seule commande. Selon Fastlane Docs, 2025, l’outil est utilisé dans plus de 1,5 million de projets dans le monde. Fastlane regroupe des utilitaires pour travailler avec App Store Connect, Google Play Console et les systèmes de signature de code.
À retenir
Fastlane est un outil d’automatisation de builds mobiles, écrit en Ruby et distribué sous licence MIT. Il automatise les tâches courantes du développeur mobile : build de l’application, exécution des tests, création de captures d’écran, signature de code et téléchargement des binaires dans l’App Store ou Google Play. Au lieu de 15 à 20 commandes manuelles, le développeur exécute une seule commande fastlane avec le nom du scénario.
Fastlane agit comme une surcouche des utilitaires Xcode (xcodebuild, xcrun) et Android SDK (gradlew, apksigner, bundletool), offrant une interface unifiée pour les deux plateformes. C’est particulièrement utile pour les équipes qui maintiennent des versions iOS et Android de la même application — des Fastfiles identiques peuvent décrire les builds pour les deux plateformes avec des différences minimales dans les paramètres.
Selon GitHub, Fastlane a plus de 39 000 étoiles et est la norme d’automatisation dans le développement mobile. L’outil est maintenu par la communauté et Google — Fastlane est intégré dans Firebase comme méthode recommandée pour livrer les applications Android à Google Play Console.
L’architecture de Fastlane repose sur trois niveaux : les actions (commandes de base), les lanes (scénarios) et les outils (utilitaires spécialisés). Les actions sont des fonctions individuelles de Fastlane, chacune exécutant une action spécifique : créer une capture d’écran, builder un IPA, télécharger dans TestFlight. Les lanes combinent plusieurs actions en un scénario séquentiel décrit dans le Fastfile.
Actions sont les blocs de construction de Fastlane. Chaque action accepte des paramètres et exécute une seule tâche. Par exemple, l’action gym build l’application iOS, scan exécute les tests, pilot télécharge le build dans TestFlight. Fastlane compte plus de 200 actions intégrées, avec une documentation pour chacune accessible via la commande fastlane action [nom].
Si les actions intégrées ne suffisent pas, le développeur peut créer une custom action en Ruby et la connecter dans le Fastfile. Les custom actions sont distribuées via les plugins Fastlane, publiés sur Rubygems et installés via le fichier FastfilePlugin à la racine du projet.
Lane est un scénario d’automatisation nommé qui combine plusieurs actions en une séquence logique. Une lane peut appeler d’autres lanes (private lanes), passer des paramètres et gérer les erreurs. Cela permet de construire une hiérarchie de scénarios : lane de build de base, lane de déploiement, lane de cycle CI/CD complet.
Fastlane comprend un ensemble d’outils spécialisés, chacun résolvant une tâche spécifique d’automatisation mobile. Les outils sont exécutés comme des actions dans les lanes ou directement depuis la ligne de commande. Examinons quatre outils clés couvrant les principaux besoins CI/CD pour iOS et Android.
| Outil | Fonction | Commande |
|---|---|---|
| scan | Exécution des tests Unit et UI sur simulateur iOS | fastlane scan |
| gym | Build du fichier IPA ou APP pour iOS | fastlane gym |
| match | Synchronisation des certificats et profils de provisionnement via Git | fastlane match |
| deliver | Téléchargement du binaire et des métadonnées dans App Store Connect | fastlane deliver |
| snapshot | Génération automatique de captures d’écran sur différents appareils | fastlane snapshot |
Scan simplifie l’exécution des tests Xcode en sélectionnant automatiquement le simulateur approprié et en formatant le rapport. Gym build l’application avec des flags de compilation optimaux et prend en charge exportOptions.plist pour différents types de build (development, adhoc, appstore). Deliver permet de télécharger non seulement le binaire, mais aussi les captures d’écran, la description, les versions et les prix via un seul fichier de métadonnées.
L’outil Match mérite une attention particulière — il résout le problème de stockage et de synchronisation des certificats iOS en équipe. Match chiffre et stocke les certificats et profils de provisionnement dans un dépôt Git, et les développeurs les obtiennent automatiquement en exécutant fastlane match. Cela élimine la configuration manuelle de chaque poste de travail.
Snapshot est un outil de création automatique de captures d’écran d’applications mobiles sur différents appareils et langues. Snapshot exécute des tests UI sur les simulateurs iOS, capturant l’écran à chaque étape du test. Les résultats sont enregistrés dans le répertoire fastlane/screenshots et peuvent être téléchargés dans App Store Connect via deliver.
Pour Android, screengrab remplit une fonction similaire sur les émulateurs Android. Les deux outils prennent en charge la localisation — les captures d’écran sont créées pour chaque langue, ce qui simplifie la préparation des documents pour la publication dans les magasins d’applications multilingues.
Pour les projets iOS, Fastlane se configure via le Gemfile (installation de la gem fastlane) et le Fastfile dans le répertoire fastlane. La configuration initiale se fait avec la commande fastlane init, qui crée la structure de répertoires de base, demande les données App Store Connect et génère un modèle de Fastfile avec les lanes principales.
La commande clé pour iOS est fastlane match, qui doit être exécutée en premier pour obtenir les certificats et profils de provisionnement. Après une signature réussie, Fastlane peut builder l’application (gym), exécuter les tests (scan) et télécharger le binaire (pilot ou deliver).
# Fastfile pour application iOS
default_platform(:ios)
lane :build do
cocoapods
scan(scheme: 'App', devices: ['iPhone 15'])
gym(scheme: 'App', export_method: 'app-store')
end
lane :deploy do
match(type: 'appstore')
build
pilot(skip_waiting_for_build_processing: true)
slack(message: 'Nouvelle version téléchargée dans TestFlight')
end
Pour travailler avec TestFlight, utilisez l’action pilot — elle télécharge l’IPA et gère les testeurs. Fastlane prend en charge upload_to_testflight (synonyme de pilot) et gère automatiquement l’attente du traitement du build par Apple, qui peut prendre de 5 à 30 minutes.
Pour les projets Android, Fastlane se configure de manière similaire, mais au lieu des outils Xcode, on utilise Gradle et Android SDK. Fastlane pour Android prend en charge le build APK et AAB, la signature via apksigner ou jarsigner, l’exécution des tests instrumentés et le téléchargement dans Google Play Console via l’action Supply.
La principale différence est que le build Android ne nécessite pas de gestion des certificats via match (la signature Android est gérée via Keystore, stocké séparément). Fastlane pour Android utilise l’action gradle pour exécuter toute tâche Gradle et l’action supply pour travailler avec Google Play.
# Fastfile pour application Android
default_platform(:android)
lane :build do
gradle(task: 'clean assembleRelease')
gradle(task: 'testReleaseUnitTest')
end
lane :deploy do
build
supply(
track: 'internal',
aab: 'app/build/outputs/bundle/release/app-release.aab'
)
end
Pour travailler avec Google Play Console, un compte de service Google Cloud avec accès à l’API Google Play est requis. Fastlane accepte la clé JSON du compte de service via la variable d’environnement SUPPLY_JSON_KEY ou le paramètre json_key dans l’action supply. Le track de publication peut être internal, alpha, beta ou production.
Fastlane s’intègre avec tous les systèmes CI/CD capables d’exécuter des scripts Ruby : Jenkins, Travis CI, GitHub Actions, GitLab CI, Bitrise et CircleCI. L’intégration se résume à installer la gem fastlane et à exécuter la commande fastlane [lane_name] dans l’étape script du pipeline.
Pour CI/CD, il est important de configurer des variables d’environnement pour stocker les données sensibles : MATCH_PASSWORD (mot de passe de chiffrement des certificats), FASTLANE_USER (Apple ID), FASTLANE_PASSWORD (mot de passe Apple ID). Dans Travis CI, les variables sont chiffrées via travis encrypt ; dans GitHub Actions, via les Secrets du dépôt.
La pratique recommandée est d’utiliser fastlane match en CI/CD avec le flag readonly pour éviter les modifications accidentelles du dépôt de certificats. Pour Android, utilisez le Keystore encodé en Base64 et stocké dans une variable d’environnement, qui est décodé et enregistré dans un fichier temporaire à l’étape before_install.
Fastlane Match est un outil pour automatiser la gestion des certificats iOS et des profils de provisionnement, l’une des fonctionnalités les plus précieuses de Fastlane pour les équipes. Match crée un dépôt Git chiffré (ou utilise un existant) où sont stockés tous les certificats et profils, en les synchronisant entre les développeurs et les serveurs CI/CD.
Match prend en charge cinq types de profils : development, adhoc, appstore, enterprise et developer_id. Chaque type est stocké dans un répertoire séparé au sein du dépôt. La commande fastlane match development installe les certificats de développement sur la machine locale, tandis que fastlane match appstore installe les profils App Store pour les builds CI.
# Utilisation de Match dans Fastfile
lane :setup_signing do
match(
type: 'appstore',
readonly: true,
git_branch: 'main'
)
end
lane :update_profiles do
match(
type: 'development',
force: true,
app_identifier: ['com.example.app', 'com.example.app.watchkitapp']
)
end
La sécurité de Match est assurée par le chiffrement de tous les fichiers avant le commit dans Git. Le mot de passe de chiffrement est défini via la variable d’environnement MATCH_PASSWORD et doit être identique pour tous les membres de l’équipe. Match utilise OpenSSL pour le chiffrement et ne stocke pas le mot de passe en clair dans le dépôt.
Foire aux questions
Fastlane est un outil Open Source d’automatisation pour les applications iOS et Android. Il automatise le build, les tests, la signature de code et la livraison sur l’App Store et Google Play via un seul fichier de configuration Fastfile et un ensemble d’outils intégrés.
Les principaux outils Fastlane : scan (tests), gym (build iOS), match (certificats), deliver (App Store), pilot (TestFlight), snapshot (captures d’écran), supply (Google Play) et frameit (cadres pour captures d’écran). Chaque outil est disponible comme action dans une lane ou depuis la ligne de commande.
Installez la gem fastlane, exécutez fastlane init à la racine du projet. Configurez le Fastfile avec des lanes pour le build (gym) et les tests (scan). Configurez Match pour la gestion des certificats via un dépôt Git. Ajoutez une lane de déploiement avec pilot ou deliver pour le téléchargement vers App Store Connect.
Exécutez fastlane init en spécifiant le package name. Utilisez l’action gradle pour exécuter les tâches Gradle (assembleRelease, testReleaseUnitTest). Configurez le Keystore via des variables d’environnement. Utilisez l’action supply pour télécharger l’AAB ou l’APK dans Google Play Console sur le track souhaité.
Installez la gem fastlane sur le serveur CI/CD et ajoutez la commande fastlane [lane_name] dans l’étape script du pipeline. Configurez les variables d’environnement FASTLANE_USER, FASTLANE_PASSWORD et MATCH_PASSWORD dans les secrets CI/CD. Utilisez match readonly en CI pour éviter les modifications accidentelles des certificats.
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.
Lisez aussi