/fastlane

Connect all iOS deployment tools into one streamlined workflow

Primary LanguageRubyMIT LicenseMIT

fastlane Logo

deliversnapshotframeitPEMsighproducecertcodesspaceshippilotboarding

-------

fastlane

Twitter: @KauseFx License Gem Build Status

######fastlane lets you define and run your deployment pipelines for different environments. It helps you unify your apps release process and automate the whole process. fastlane connects all fastlane tools and third party tools, like CocoaPods and xctool.

Get in contact with the developer on Twitter: @KrauseFx


FeaturesInstallationQuick StartExample SetupsDocumentationNeed help?


Features

Why should you have to remember complicated commands and parameters?

Store your configuration in a text file to easily test, builld, and deploy from any computer.

Take a look at how Wikipedia and Product Hunt use fastlane.

Define different environments (lanes) in your Fastfile: Examples are: appstore, beta and test.

You define a lane like this (more details about the commands in the Actions documentation):

lane :appstore do
  increment_build_number
  cocoapods
  xctool
  snapshot
  sigh
  deliver
  frameit
  sh "./customScript.sh"

  slack
end

To launch the appstore lane, just run:

fastlane appstore

fastlane can do a lot for you to automate tedious and time-consuming tasks:

  • Connect all build related iOS 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.
  • Write your own actions (extensions) to extend the functionality of fastlane.
  • Store data like the Bundle Identifier or your Apple ID once and use it across all tools.
  • Never remember any difficult commands, just fastlane.
  • Easy setup, which helps you getting up and running quickly.
  • Shared context, which is used to let the different deployment steps communicate with each other.
  • Store everything in git. Never again lookup the used build commands in the Jenkins configs.
  • Saves you hours of preparing app submission, uploading screenshots and deploying the app for each update.
  • Very flexible configuration using a fully customizable Fastfile.
  • Once up and running, you have a fully working Continuous Delivery process. Just trigger fastlane and you're good to go.
  • Jenkins Integration: Show the output directly in the Jenkins test results.
  • Automatically generate a markdown documentation of your lanes based on your Fastfile.
  • Over 60 built-in integrations available.
  • Support for both iOS and Mac OS apps
  • Full git and mercurial support
Take a look at the fastlane website for more information about why and when to use fastlane.

Installation

I recommend following the fastlane guide to get started.

sudo gem install fastlane --verbose

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

xcode-select --install

If you want to take a look at a project, already using fastlane, check out the fastlane-examples with fastlane setups by Wikipedia, Product Hunt, MindNode and more.

Quick Start

The setup assistant will create all the necessary files for you, using the existing app metadata from iTunes Connect.

  • cd [your_project_folder]
  • fastlane init
  • Follow the setup assistant, which will set up fastlane for you
  • Further customise the Fastfile with actions.

For more details, please follow the fastlane guide or documentation.

There are also 2 Japanese fastlane guides available: qiita and mercari

Available commands

Usually you'll use fastlane by triggering individual lanes:

fastlane [lane_name]

Other commands

  • fastlane actions: List all available fastlane actions
  • 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 docs: Generates a markdown based documentation of all your lanes
  • fastlane new_action: Create a new action (integration) for fastlane

Examples

See how Wikipedia, Product Hunt and MindNode use fastlane to automate their iOS submission process.

fastlane Toolchain

fastlane is designed to make your life easier by bringing together the fastlane suite of tools under one roof.

  • deliver: Upload screenshots, metadata and your app to the App Store
  • snapshot: Automate taking localized screenshots of your iOS 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
  • codes: Create promo codes for iOS Apps using the command line
  • 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

Statistics

fastlane tracks the number of errors for each action to detect integration issues. The data will be sent to fastlane-enhancer and is available publicly.

You can easily opt-out by adding opt_out_usage to your Fastfile or by setting the environment variable FASTLANE_OPT_OUT_USAGE.

To also disable update checks, set the FASTLANE_SKIP_UPDATE_CHECK variable.

Credentials

A detailed description about how fastlane stores your credentials is available on a separate repo.

Need help?

Special Thanks

Thanks to all contributors for extending and improving the fastlane suite:

Check out the project pages of the other tools for more sponsors and contributors.

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.