New to fastlane? Click here to open the installation & setup instructions first

1) Install the latest Xcode command line tools

xcode-select --install

2) Install fastlane

# Using RubyGems
sudo gem install fastlane -NV

# Alternatively using Homebrew
brew cask install fastlane

3) Navigate to your project and run

fastlane init

More Details

fastlane actions

This page contains a list of all built-in fastlane actions and their available options.

To get the most up-to-date information from the command line on your current version you can also run

fastlane actions # list all available fastlane actions
fastlane action [action_name] # more information for a specific action

You can import another Fastfile by using the import action. This is useful if you have shared lanes across multiple apps and you want to store a Fastfile in a separate folder. The path must be relative to the Fastfile this is called from.

import './path/to/other/Fastfile'

For fastlane plugins, check out the available plugins page.


Action Description
scan Alias for the run_tests action
slather Use slather to generate a code coverage report
swiftlint Run swift code validation using SwiftLint
xcov Nice code coverage reports without hassle
sonar Invokes sonar-scanner to programmatically run SonarQube analysis
oclint Lints implementation files with OCLint
gcovr Runs test coverage reports for your Xcode project
lcov Generates coverage data using lcov
appium Run UI test by Appium with RSpec
xctool Run tests using xctool
run_tests Easily run tests of your iOS app (via scan)
xcode_server_get_assets Downloads Xcode Bot assets like the .xcarchive and logs


Action Description
gym Alias for the build_ios_app action
cocoapods Runs pod install for the project
gradle All gradle related actions, including building and testing your Android app
clear_derived_data Deletes the Xcode Derived Data
adb Run ADB Actions
xcversion Select an Xcode to use by version specifier
xcodebuild Use the xcodebuild command to build and sign your app
carthage Runs carthage for your project
xcode_select Change the xcode-path to use. Useful for beta versions of Xcode
ensure_xcode_version Ensure the right version of Xcode is used
clean_cocoapods_cache Remove the cache for pods
verify_xcode Verifies that the Xcode installation is properly signed by Apple
xcode_install Make sure a certain version of Xcode is installed
verify_pod_keys Verifies all keys referenced from the Podfile are non-empty
xctest Runs tests on the given simulator
xcclean Cleans the project using xcodebuild
build_app Alias for the build_ios_app action
spm Runs Swift Package Manager on your project
xcarchive Archives the project using xcodebuild
xcbuild Builds the project using xcodebuild
build_android_app Alias for the gradle action
build_ios_app Easily build and sign your app (via gym)
xcexport Exports the project using xcodebuild


Action Description
snapshot Alias for the capture_ios_screenshots action
screengrab Alias for the capture_android_screenshots action
frameit Alias for the frame_screenshots action
capture_android_screenshots Automated localized screenshots of your Android app (via screengrab)
capture_ios_screenshots Generate new localized screenshots on multiple devices (via snapshot)
frame_screenshots Adds device frames around all screenshots (via frameit)
capture_screenshots Alias for the capture_ios_screenshots action


Action Description
increment_build_number Increment the build number of your project
set_info_plist_value Sets value to Info.plist of your project as native Ruby data structures
get_version_number Get the version number of your project
get_info_plist_value Returns value from Info.plist of your project as native Ruby data structures
update_info_plist Update a Info.plist file with bundle identifier and display name
update_app_identifier Update the project's bundle identifier
get_build_number Get the build number of your project
increment_version_number Increment the version number of your project
update_project_team Update Xcode Development Team ID
update_app_group_identifiers This action changes the app group identifiers in the entitlements file
get_ipa_info_plist_value Returns a value from Info.plist inside a .ipa file
recreate_schemes Recreate not shared Xcode project schemes
update_url_schemes Updates the URL schemes in the given Info.plist
set_build_number_repository Set the build number from the current repository
set_pod_key Sets a value for a key with cocoapods-keys
update_plist Update a plist file

Code Signing

Action Description
sigh Alias for the get_provisioning_profile action
match Alias for the sync_code_signing action
cert Alias for the get_certificates action
import_certificate Import certificate from inputfile into a keychain
update_project_provisioning Update projects code signing settings from your provisioning profile
resign Codesign an existing ipa file
register_devices Registers new devices to the Apple Dev Portal
automatic_code_signing Configures Xcode's Codesigning options
register_device Registers a new device to the Apple Dev Portal
get_certificates Create new iOS code signing certificates (via cert)
sync_code_signing Easily sync your certificates and profiles across your team (via match)
get_provisioning_profile Generates a provisioning profile, saving it in the current folder (via sigh)


Action Description
jazzy Generate docs using Jazzy
appledoc Generate Apple-like source code documentation from the source code


Action Description
pilot Alias for the upload_to_testflight action
crashlytics Upload a new build to Crashlytics Beta
hockey Upload a new build to HockeyApp
testflight Alias for the upload_to_testflight action
deploygate Upload a new build to DeployGate
apteligent Upload dSYM file to Apteligent (Crittercism)
appetize Upload your app to to stream it in the browser
testfairy Upload a new build to TestFairy
appaloosa Upload your app to Appaloosa Store
nexus_upload Upload a file to Sonatype Nexus platform
installr Upload a new build to Installr
set_changelog Set the changelog for all languages on App Store Connect
splunkmint Upload dSYM file to Splunk MINT
tryouts Upload a new build to Tryouts
upload_to_testflight Upload new binary to App Store Connect for TestFlight beta testing (via pilot)
podio_item Creates or updates an item within your Podio app


Action Description
pem Alias for the get_push_certificate action
update_urban_airship_configuration Set the Urban Airship plist configuration values
onesignal Create a new OneSignal application
get_push_certificate Ensure a valid push profile is active, creating a new one if needed (via pem)

Releasing your app

Action Description
deliver Alias for the upload_to_app_store action
supply Alias for the upload_to_play_store action
appstore Alias for the upload_to_app_store action
upload_to_app_store Upload metadata and binary to App Store Connect (via deliver)
upload_to_play_store Upload metadata, screenshots and binaries to Google Play (via supply)

Source Control

Action Description
ensure_git_status_clean Raises an exception if there are uncommitted git changes
git_branch Returns the name of the current git branch, possibly as managed by CI ENV vars
last_git_commit Return last git commit hash, abbreviated commit hash, commit message and author
reset_git_repo Resets git repo to a clean state by discarding uncommitted changes
changelog_from_git_commits Collect git commit messages into a changelog
number_of_commits Return the number of commits in current git branch
git_pull Executes a simple git pull command
last_git_tag Get the most recent git tag
push_to_git_remote Push local changes to the remote branch
add_git_tag This will add an annotated git tag to the current branch
commit_version_bump Creates a 'Version Bump' commit. Run after increment_build_number
git_tag_exists Checks if the git tag with the given name exists in the current repo
ensure_git_branch Raises an exception if not on a specific git branch
git_commit Directly commit the given file with the given message
push_git_tags Push local tags to the remote - this will only push tags
git_add Directly add the given file or all files
get_build_number_repository Get the build number from the current repository
set_github_release This will create a new release on GitHub and upload assets for it
create_pull_request This will create a new pull request on GitHub
get_github_release This will verify if a given release version is available on GitHub
hg_ensure_clean_status Raises an exception if there are uncommitted hg changes
hg_commit_version_bump This will commit a version bump to the hg repo
hg_push This will push changes to the remote hg repository
hg_add_tag This will add a hg tag to the current branch
github_api Call a GitHub API endpoint and get the resulting JSON response
commit_github_file This will commit a file directly on GitHub via the API
git_submodule_update Executes a git submodule command


Action Description
slack Send a success/error message to your Slack group
notification Display a macOS notification with custom message and title
hipchat Send a error/success message to HipChat
mailgun Send a success/error message to an email group
chatwork Send a success/error message to ChatWork
ifttt Connect to the IFTTT Maker Channel.
flock Send a message to a Flock group
twitter Post a tweet on
typetalk Post a message to Typetalk


Action Description
puts Prints out the given text
default_platform Defines a default platform to not have to specify the platform
fastlane_version Alias for the min_fastlane_version action
lane_context Access lane context values
import Import another Fastfile to use its lanes
import_from_git Import another Fastfile from a remote git repository to use its lanes
clean_build_artifacts Deletes files created as result of running gym, cert, sigh or download_dsyms
skip_docs Skip the creation of the fastlane/ file when running fastlane
produce Alias for the create_app_online action
is_ci Is the current run being executed on a CI system, like Jenkins or Travis
setup_jenkins Setup xcodebuild, gym and scan for easier Jenkins integration
unlock_keychain Unlock a keychain
update_fastlane Makes sure fastlane-tools are up-to-date when running fastlane
precheck Alias for the check_app_store_metadata action
bundle_install This action runs bundle install (if available)
upload_symbols_to_crashlytics Upload dSYM symbolication files to Crashlytics
create_keychain Create a new Keychain
delete_keychain Delete keychains and remove them from the search list
latest_testflight_build_number Fetches most recent build number from TestFlight
backup_file This action backs up your file to "[path].back"
copy_artifacts Copy and save your build artifacts (useful when you use reset_git_repo)
prompt Ask the user for a value or for confirmation
reset_simulator_contents Shutdown and reset running simulators
restore_file This action restore your file that was backuped with the backup_file action
say This action speaks the given text out loud
zip Compress a file or folder to a zip
danger Runs danger for the project
artifactory This action uploads an artifact to artifactory
download_dsyms Download dSYM files from App Store Connect for Bitcode apps
version_bump_podspec Increment or set the version in a podspec file
team_id Specify the Team ID you want to use for the Apple Developer Portal
backup_xcarchive Save your [zipped] xcarchive elsewhere from default path
pod_lib_lint Pod lib lint
erb Allows to Generate output files based on ERB templates
download Download a file from a remote server (e.g. JSON file)
rocket Outputs ascii-art for a rocket 🚀
debug Print out an overview of the lane context values
make_changelog_from_jenkins Generate a changelog using the Changes section from the current Jenkins build
pod_push Push a Podspec to Trunk or a private repository
dsym_zip Creates a zipped dSYM in the project root from the .xcarchive
ensure_no_debug_code Ensures the given text is nowhere in the code base
cloc Generates a Code Count that can be read by Jenkins (xml format)
team_name Set a team to use by its name
scp Transfer files via SCP
verify_build Able to verify various settings in ipa file
install_on_device Installs an .ipa file on a connected iOS-device via usb or wifi
version_get_podspec Receive the version number from a podspec file
rsync Rsync files from :source to :destination
adb_devices Get an array of Connected android device serials
dotgpg_environment Reads in production secrets set in a dotgpg file and puts them in ENV
jira Leave a comment on JIRA tickets
read_podspec Loads a CocoaPods spec as JSON
ssh Allows remote command execution using ssh
app_store_build_number Returns the current build_number of either live or edit version
appetize_viewing_url_generator Generate an URL for appetize simulator
install_xcode_plugin Install an Xcode plugin for the current user
add_extra_platforms Modify the default list of supported platforms
clipboard Copies a given string into the clipboard. Works only on macOS
build_and_upload_to_appetize Generate and upload an ipa file to
update_icloud_container_identifiers This action changes the iCloud container identifiers in the entitlements file
sh Runs a shell command
create_app_online Creates the given application on iTC and the Dev Portal (via produce)
google_play_track_version_codes Retrieves version codes for a Google Play track
ruby_version Verifies the minimum ruby version required
setup_circle_ci Setup the keychain and match to work with CircleCI
plugin_scores No description provided
min_fastlane_version Verifies the minimum fastlane version required
println Alias for the puts action
modify_services Modifies the services of the app created on Developer Portal
opt_out_usage This will stop uploading the information which actions were run
setup_travis Setup the keychain and match to work with Travis CI
check_app_store_metadata Check your app's metadata before you submit your app to review (via precheck)
environment_variable Sets/gets env vars for Fastlane.swift. Don't use in ruby, use ENV[key] = val
echo Alias for the puts action


Action Description
badge Automatically add a badge to your app icon
s3 Generates a plist file and uploads all to AWS S3
notify Shows a macOS notification - use notification instead
update_project_code_signing Updated code signing settings from 'Automatic' to a specific profile
ipa Easily build and sign your app using shenzhen
upload_symbols_to_sentry Upload dSYM symbolication files to Sentry
opt_out_crash_reporting This will prevent reports from being uploaded when fastlane crashes