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
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.
Define different environments (
lanes) in your
Fastfile: Examples are:
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 can do a lot for you to automate tedious and time-consuming tasks:
- Connect all build related iOS tools into one workflow (both
fastlanetools and third party tools)
- Define different
deployment lanesfor App Store deployment, beta builds or testing.
- Deploy from any computer.
- Write your own actions (extensions) to extend the functionality of
- Store data like the
Bundle Identifieror your
Apple IDonce and use it across all tools.
- Never remember any difficult commands, just
- 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
- Saves you hours of preparing app submission, uploading screenshots and deploying the app for each update.
- Very flexible configuration using a fully customizable
- Once up and running, you have a fully working Continuous Delivery process. Just trigger
fastlaneand 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
- 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
Like this tool? Be the first to know about updates and new fastlane tools.
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:
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.
The setup assistant will create all the necessary files for you, using the existing app metadata from iTunes Connect.
- Follow the setup assistant, which will set up
- Further customise the
Usually 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 docs: Generates a markdown based documentation of all your lanes
fastlane new_action: Create a new action (integration) for fastlane
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 using a single command
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
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
To also disable update checks, set the
A detailed description about how
fastlane stores your credentials is available on a separate repo.
- If there is a technical problem with
fastlane, open an issue.
- I'm available for contract work - drop me an email: [email protected]
Thanks to all contributors for extending and improving the
- Product Hunt
- Detroit Labs
- Josh Holtz (@joshdholtz)
- Ash Furrow (@ashfurrow)
- Dan Trenz (@dtrenz)
- Luka Mirosevic (@lmirosevic)
- Almas Sapargali (@almassapargali)
- Manuel Wallner (@milch)
- Pawel Dudek (@eldudi)
Check out the project pages of the other tools for more sponsors and contributors.
This project is licensed under the terms of the MIT license. See the LICENSE file.