β¨ 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
fastlane beta
π
fastlane | |
---|---|
β¨ | Connect iOS and Android build tools into one workflow (both fastlane tools and third party tools) |
π | Define different deployment lanes for App Store deployment, beta builds, or testing |
π’ | Deploy from any computer, including a CI server |
π§ | Extend and customise functionality |
π | Never remember any difficult commands, just fastlane |
π© | 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 ipa file) |
π | Store everything in Git. Never lookup build commands on your CI system again. |
π | Saves you hours for every app update you release |
βοΈ | Flexible configuration using a fully customisable Fastfile |
π | 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 and 170 plugins available |
π» | Support for iOS and Android apps |
Full Git and Mercurial support |
Check out the new fastlane docs
Like this tool? Be the first to know about updates and new fastlane tools.
Make sure you have the latest version of the Xcode command line tools installed:
xcode-select --install
Homebrew | Installer Script | Rubygems |
---|---|---|
macOS | macOS | macOS or Linux with Ruby 2.0.0 or above |
brew cask install fastlane |
Download the zip file. Then double click on the install script (or run it in a terminal window). |
sudo gem install fastlane -NV |
Get started distributing your first app with fastlane within minutes:
Want to learn more? Explore guides for iOS or Android.
Currently, fastlane is officially supported to run on macOS. Support for other operating systems is limited and untested at this point in time. fastlane uses system APIs that may not be implemented on other platforms, for example, we use the Ruby fork
method for sub-process management, which isn't available on Windows.
Typically you'll use fastlane
by triggering individual lanes:
fastlane [lane_name]
fastlane actions
: List all availablefastlane
actionsfastlane action [action_name]
: Shows a more detailed description of an actionfastlane lanes
: Lists all available lanes with descriptionfastlane list
: Lists all available lanes without descriptionfastlane new_action
: Create a new action (integration) for fastlanefastlane 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.
Check out the new fastlane docs
fastlane
Toolchain
In addition to fastlane
's commands, you also have access to these fastlane
tools:
deliver
: Upload screenshots, metadata, and your app to the App Storesupply
: Upload your Android app and its metadata to Google Playsnapshot
: Automate taking localized screenshots of your iOS and tvOS apps on every devicescreengrab
: Automate taking localized screenshots of your Android app on every deviceframeit
: Quickly put your screenshots into the right device framespem
: Automatically generate and renew your push notification profilessigh
: Because you would rather spend your time building stuff than fighting provisioningproduce
: Create new iOS apps on iTunes Connect and Dev Portal using the command linecert
: Automatically create and maintain iOS code signing certificatesspaceship
: Ruby library to access the Apple Dev Center and iTunes Connectpilot
: The best way to manage your TestFlight testers and builds from your terminalboarding
: The easiest way to invite your TestFlight beta testersgym
: Building your iOS apps has never been easiermatch
: Easily sync your certificates and profiles across your team using Gitscan
: The easiest way to run tests for your iOS and Mac appsprecheck
: Check your app using a community driven set of App Store review rules to avoid being rejected
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 stack traces. Sanitization removes personal information from the stack trace 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! β
Before submitting a new GitHub issue, please make sure to
- Check out docs.fastlane.tools
- Check out the README pages on this repo
- Search for existing GitHub issues
If the above doesn't help, please submit an issue on GitHub and provide information about your setup, in particular the output of the fastlane env
command.
Note: If you want to report a regression in fastlane (something that has worked before, but broke with a new release), please mark your issue title as such using [Regression] Your title here
. This enables us to quickly detect and fix regressions.
Thanks to all contributors for extending and improving fastlane
.
Are you giving a talk on fastlane? Great! Let us know so we can help you give the best possible presentation.
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.