fastlane/fastlane
🚀 The easiest way to automate building and releasing your iOS and Android apps
How fastlane is put together
fastlane is a Ruby-based CLI automation toolkit for iOS and Android developers, automating tasks like screenshot generation, code signing, and app store releases. The repository is a monorepo of many independently shippable tools (deliver, match, snapshot, screengrab, spaceship, etc.), each in its own top-level directory with lib/ and spec/ subdirectories, all packaged as the single 'fastlane' gem via fastlane.gemspec. A core library (fastlane_core) provides configuration, command execution, and UI primitives; the fastlane/ directory contains the lane runner that executes user Fastfiles, plus a Swift client (fastlane/swift) that communicates with the Ruby process over a socket for Swift-based lane execution. Data flow: user config files (Fastfile, Appfile, Matchfile) are parsed by credentials_manager/fastlane_core, actions invoke external services (App Store Connect via spaceship, Google Play via supply) over HTTPS, and results are reported through the shared UI layer.
Languages
Frameworks
Infrastructure
Major components
fastlane_core
Shared foundation providing configuration items/files, command execution, environment handling, device management, cert checking, and UI output used by all tools.
fastlane (lane runner)
Parses and executes user Fastfile lanes, dispatches to ~hundreds of built-in actions, manages plugins, and hosts the Swift runner bridge (SocketClient/MainProcess).
spaceship
API client library for Apple's App Store Connect / Developer Portal services used by deliver, pilot, cert, sigh, pem, precheck, produce.
credentials_manager
Loads Appfile configuration (app_identifier, apple_id, team_id per platform/lane) and manages stored account credentials.
deliver
Uploads metadata, screenshots, and app previews to App Store Connect, including validation of screenshot sizes/formats and review submission.
match/cert/sigh/pem
Code signing toolchain: managing certificates, provisioning profiles, and push notification profiles.
snapshot/screengrab/frameit
Automated localized screenshot capture on iOS simulators and Android devices (screengrab is an Android Gradle library published to Maven), plus device-frame compositing.
supply/pilot/precheck/produce/gym/scan
Google Play uploads, TestFlight beta distribution, App Store metadata rule checks, app creation, iOS build, and test running tools respectively.
A quiet week with one security-style hardening fix to deliver's HTML report generator.
5 weeksWeek of 2026-08-24
Week of 2026-08-24latest
A quiet week with one security-style hardening fix to deliver's HTML report generator.
Week of 2026-08-10
A busy week that shipped a new version (2.238.0), modernized release tooling to Ruby 3.4, and fixed several long-standing bugs.
Week of 2026-08-03
A single targeted fix to how video files are analyzed.
Week of 2026-07-27
Seven changes spanning bug fixes, dependency upgrades, and clearer documentation of collected metrics.
Week of 2026-07-20
Four improvements including early support for the next major version of Ruby and more forgiving device file handling.
Over the past few weeks, fastlane's development focused on modernizing the project's infrastructure—moving releases to newer Ruby and dependency versions (including early Ruby 4 support)—while also shipping user-facing improvements across tools like pilot, deliver, gym, and several actions. Bug fixes targeted edge cases such as video parsing, UTF-8 output handling, and device file parsing. A quieter final week closed things out with a single hardening fix to deliver's HTML report generation.
Week by week
2026-08-24A quiet week with one security-style hardening fix to deliver's HTML report generator.latest1 change
Fix
Safer command usage in HTML report generator
The tool that produces App Store submission previews in HTML was made more robust in how it invokes external commands, reducing the risk of errors or unexpected behavior.
2026-08-10A busy week that shipped a new version (2.238.0), modernized release tooling to Ruby 3.4, and fixed several long-standing bugs.6 changes
Feature
Filter commits in changelog generation
The changelog-from-git-commits action now accepts an optional argument to include only matching commits, giving teams more control over their release notes.
Chore
Release pipeline moved to Ruby 3.4
The automated processes that build and publish new fastlane versions were upgraded to run on a newer version of the underlying programming language.
Fix
Pilot matches test groups by name or ID
When distributing test builds, pilot can now correctly find tester groups whether you refer to them by name or by internal ID.
Feature
SDK conditions for team updates
The update_project_team action gained support for SDK conditions when setting signing teams in Xcode projects.
Fix
Unique upload directories on non-Mac systems
Uploads from Linux or Windows machines now use a unique temporary directory, preventing collisions when multiple uploads run at once.
Fix
Fixed crash from odd characters in shell output
Shell commands producing text with unusual byte sequences no longer cause the sh_helper action to crash with encoding errors.
2026-08-03A single targeted fix to how video files are analyzed.1 change
Fix
Correct video resolution detection
App preview video resolution is now parsed correctly even when the file's audio track appears before its video track, fixing failed or wrong measurements.
2026-07-27Seven changes spanning bug fixes, dependency upgrades, and clearer documentation of collected metrics.6 changes
Fix
Mac Catalyst package type detection fixed
Building Mac Catalyst apps no longer picks the wrong package type when the catalyst platform setting isn't explicitly specified.
Docs
Clearer metrics documentation
The readme now explains in detail exactly what usage data fastlane collects, improving transparency.
Chore
Upgraded Sinatra web framework to version 4
An internal web framework dependency was brought up to its current major version as part of ongoing maintenance.
Feature
Skip-update option for Swift Package Manager builds
The spm action can now pass --skip-update so builds use already-resolved dependencies instead of fetching new ones.
Fix
Consistent copyright rule wording in precheck
The App Store metadata checker now uses consistent wording for its copyright rule, avoiding confusing messages.
Docs
Better instructions for running Apple's transport tool
Documentation for deliver and pilot was clarified on how to manually invoke Apple's iTMSTransporter upload tool.
2026-07-20Four improvements including early support for the next major version of Ruby and more forgiving device file handling.4 changes
Chore
Support for Ruby 4
The codebase was updated and tested against Ruby 4, preparing fastlane for future language versions.
Feature
Crashlytics uploads can fail the build
The symbol-upload step for Crashlytics gained an option to make your overall build fail if the upload itself fails, catching problems earlier.
Feature
Social media rating keys in deliver
App Store metadata can now include social media profile links via new rating keys supported by deliver.
Fix
Blank and comment lines tolerated in device lists
Registering test devices from a file no longer breaks when the file contains empty lines or comments.
Dependencies and code review
Dependency advisories
Security Watch
No known advisories across 0 scanned dependencies.
No known advisories in the scanned dependencies.
Code review
No concrete code-level issues confirmed.
Get this report every week for your repos.
GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.
$19 a month, flat · First 10 outputs free · No card required