img/fastlane_text.png

fastlane

Twitter: @FastlaneTools License Gem

fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. πŸš€ It handles all tedious tasks, like generating screenshots, dealing with code signing, and releasing your application.

You can start by creating a Fastfile file in your repository, here’s one that defines your beta or App Store release process:

lane :beta do
  increment_build_number
  build_app
  upload_to_testflight
end

lane :appstore do
  capture_screenshots
  build_app
  upload_to_app_store       # Upload the screenshots and the binary to iTunes
  slack                     # Let your team-mates know the new version is live
end

You just defined 2 different lanes, one for beta deployment, one for App Store. To release your app in the App Store, all you have to do is

fastlane appstore

Why fastlane?

fastlane
πŸš€ Save hours every time you push a new release to the store or beta testing service
✨ Integrates with all your existing tools and services (170 actions currently)
πŸ“– 100% open source under the MIT license
🎩 Easy setup assistant to get started in a few minutes
βš’ Runs on your machine, it's your app and your data
πŸ‘» Integrates with all major CI systems
πŸ–₯ Supports iOS, Mac, and Android apps
πŸ”§ Extend and customise fastlane to fit your needs, you're not dependent on anyone
πŸ’­ Never remember any commands any more, just fastlane
🚒 Deploy from any computer, including a CI server

Getting Started

Make sure you have the latest version of the Xcode command line tools installed:

xcode-select --install

Choose your installation method:

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

Navigate to your iOS or Android app and run

fastlane init

fastlane will automatically detect your project, and ask for any missing information.

For more details about how to get up and running, check out the getting started guides:

Using the Fabric app

If you're not familiar with the terminal and prefer a graphical user interface, download the Fabric app and use the built-in fastlane button.

Questions and support

Before submitting a new GitHub issue, please make sure to

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.

System requirements

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.

Special Thanks

Thanks to all contributors for extending and improving fastlane.

Speakers

Are you giving a talk on fastlane? Great! Let us know so we can help you give the best possible presentation.

Metrics

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! :heavy_plus_sign:

Crash Reporting

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! :heavy_plus_sign:

License

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.