✨ Check out docs.fastlane.tools on how to get started with fastlane ✨
fastlane is a tool for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application.
Use a lane to define your process:
lane :beta do increment_build_number cocoapods match testflight sh "./customScript.sh" slack end
Then to deploy a new 'beta' version of your app just run
|Connect iOS and Android build tools into one workflow (both fastlane tools and third party tools)|
|Deploy from any computer, including a CI server|
|Extend and customise functionality|
|Never remember any difficult commands, just
|Easy setup assistant to get started in a few minutes|
|Automatically pass on information from one build step to another (e.g. path to the
|Store everything in Git. Never lookup build commands in
|Saves you hours for every app update you release|
|Flexible configuration using a fully customisable
|Implement a fully working Continuous Delivery process|
|Jenkins Integration: Show output directly in test results|
|Automatically generate Markdown documentation of your lane configurations|
|Over 170 built-in integrations available|
|Support for iOS and Android apps|
|Full Git and Mercurial support|
Make sure you have the latest version of the Xcode command line tools installed:
Choose your installation method:
|macOS||macOS||macOS or Linux with Ruby 2.0.0 or above|
||Download the zip file. Then double click on the
Get started distributing your first app with fastlane within minutes:
Typically you'll use
fastlane by triggering individual lanes:
fastlane actions: List all available
fastlane action [action_name]: Shows a more detailed description of an action
fastlane lanes: Lists all available lanes with description
fastlane list: Lists all available lanes without description
fastlane new_action: Create a new action (integration) for fastlane
fastlane env: Print out the fastlane ruby environment when submitting an issue
If you'd like to take a look at a project already using
fastlane check out fastlane-examples which includes
fastlane setups by Wikipedia, Product Hunt, MindNode, and more.
In addition to
fastlane's commands, you also have access to these
deliver: Upload screenshots, metadata, and your app to the App Store
supply: Upload your Android app and its metadata to Google Play
snapshot: Automate taking localized screenshots of your iOS and tvOS apps on every device
screengrab: Automate taking localized screenshots of your Android app on every device
frameit: Quickly put your screenshots into the right device frames
pem: Automatically generate and renew your push notification profiles
sigh: Because you would rather spend your time building stuff than fighting provisioning
produce: Create new iOS apps on iTunes Connect and Dev Portal using the command line
cert: Automatically create and maintain iOS code signing certificates
spaceship: Ruby library to access the Apple Dev Center and iTunes Connect
pilot: The best way to manage your TestFlight testers and builds from your terminal
boarding: The easiest way to invite your TestFlight beta testers
gym: Building your iOS apps has never been easier
match: Easily sync your certificates and profiles across your team using Git
scan: The easiest way to run tests for your iOS and Mac apps
fastlane tracks a few key metrics to understand how developers are using the tool and to help us know what areas need improvement. No personal/sensitive information is ever collected. Metrics that are collected include:
- The number of successes, errors, and crashes for fastlane and each action run in a Fastfile
- The running time of fastlane
- The method by which fastlane was installed
- Whether fastlane is being run on CI
- The platform (e.g. iOS, Android) for which fastlane is run
- A hash of the app identifier or package name, which helps us anonymously identify unique usage of fastlane
We have recently changed the destination service to which these metrics are reported, as well as the format of the data, but the data that is collected has not changed.
You can easily opt-out of metrics collection by adding
opt_out_usage at the top of your
Fastfile or by setting the environment variable
FASTLANE_OPT_OUT_USAGE. Participating helps us provide the best possible support for fastlane, so we hope you'll consider it a plus!
In order to continuously improve stability, fastlane will record crash reports with sanitized stacktraces. Sanitization removes personal information from the stacktrace and error message (including home directories, fastlane path, gem paths, environment variables, and parameters).
You can easily opt-out of crash reporting by adding
opt_out_crash_reporting at the top of your
Fastfile or by setting the environment variable
FASTLANE_OPT_OUT_CRASH_REPORTING. Just like metrics mentioned above, participating helps us provide the best possible support for fastlane, so we hope you'll consider it a plus!
Please submit an issue on GitHub and provide information about your setup.
Thanks to all contributors for extending and improving
Are you giving a talk on fastlane? Great! Let us know so we can help you give the best possible presentation.
Code of Conduct
Help us keep
fastlane open and inclusive. Please read and follow our Code of Conduct.
This project is licensed under the terms of the MIT license. See the LICENSE file.
This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.