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 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. If you want to create your own action, check out the local actions page.

Testing

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

Building

Action Description Supported Platforms
gym Alias for the build_app action ios, mac
cocoapods Runs pod install for the project ios, mac
gradle All gradle related actions, including building and testing your Android app ios, android
clear_derived_data Deletes the Xcode Derived Data ios, mac
adb Run ADB Actions android
xcodebuild Use the xcodebuild command to build and sign your app ios, mac
carthage Runs carthage for your project ios, mac
xcode_select Change the xcode-path to use. Useful for beta versions of Xcode ios, mac
ensure_xcode_version Ensure the right version of Xcode is used ios, mac
clean_cocoapods_cache Remove the cache for pods ios, mac
verify_xcode Verifies that the Xcode installation is properly signed by Apple ios, mac
verify_pod_keys Verifies all keys referenced from the Podfile are non-empty ios, mac
xcodes Make sure a certain version of Xcode is installed, installing it only if needed ios, mac
xcclean Cleans the project using xcodebuild ios, mac
spm Runs Swift Package Manager on your project ios, android, mac
xcbuild Builds the project using xcodebuild ios, mac
xctest Runs tests on the given simulator ios, mac
build_app Easily build and sign your app (via gym) ios, mac
xcarchive Archives the project using xcodebuild ios, mac
create_xcframework Package multiple build configs of a library/framework into a single xcframework ios, mac
xcexport Exports the project using xcodebuild ios, mac
build_android_app Alias for the gradle action ios, android
build_ios_app Alias for the build_app action but only for iOS ios
build_mac_app Alias for the build_app action but only for macOS mac

Screenshots

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

Project

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

Code Signing

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

Documentation

Action Description Supported Platforms
jazzy Generate docs using Jazzy ios, mac
appledoc Generate Apple-like source code documentation from the source code ios, mac
sourcedocs Generate docs using SourceDocs ios, mac

Beta

Action Description Supported Platforms
pilot Alias for the upload_to_testflight action ios, mac
testflight Alias for the upload_to_testflight action ios, mac
deploygate Upload a new build to DeployGate ios, android
apteligent Upload dSYM file to Apteligent (Crittercism) ios
appetize Upload your app to Appetize.io to stream it in browser ios, android
testfairy Upload a new build to TestFairy ios, android
appaloosa Upload your app to Appaloosa Store ios, android, mac
nexus_upload Upload a file to Sonatype Nexus platform ios, android, mac
installr Upload a new build to Installr ios
splunkmint Upload dSYM file to Splunk MINT ios
tryouts Upload a new build to Tryouts ios, android
podio_item Creates or updates an item within your Podio app ios, android, mac
upload_to_testflight Upload new binary to App Store Connect for TestFlight beta testing (via pilot) ios, mac

Push

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

Releasing your app

Action Description Supported Platforms
deliver Alias for the upload_to_app_store action ios, mac
supply Alias for the upload_to_play_store action android
appstore Alias for the upload_to_app_store action ios, mac
upload_to_play_store_internal_app_sharing Upload binaries to Google Play Internal App Sharing (via supply) android
download_app_privacy_details_from_app_store Download App Privacy Details from an app in App Store Connect ios, mac
upload_to_app_store Upload metadata and binary to App Store Connect (via deliver) ios, mac
download_universal_apk_from_google_play Download the Universal APK of a given version code from the Google Play Console android
upload_app_privacy_details_to_app_store Upload App Privacy Details for an app in App Store Connect ios, mac
download_from_play_store Download metadata and binaries from Google Play (via supply) android
upload_to_play_store Upload metadata, screenshots and binaries to Google Play (via supply) android

Source Control

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

Notifications

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

App Store Connect

Action Description Supported Platforms
produce Alias for the create_app_online action ios
precheck Alias for the check_app_store_metadata action ios
latest_testflight_build_number Fetches most recent build number from TestFlight ios, mac
download_dsyms Download dSYM files from App Store Connect for Bitcode apps ios
app_store_build_number Returns the current build_number of either live or edit version ios, mac
set_changelog Set the changelog for all languages on App Store Connect ios, mac
app_store_connect_api_key Load the App Store Connect API token to use in other fastlane tools and actions ios, mac
check_app_store_metadata Check your app's metadata before you submit your app to review (via precheck) ios
create_app_online Creates the given application on iTC and the Dev Portal (via produce) ios

Misc

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

Deprecated

Action Description Supported Platforms
hockey Refer to App Center ios, android, mac
xcversion Select an Xcode to use by version specifier ios, mac
badge Automatically add a badge to your app icon ios, android, mac
automatic_code_signing Configures Xcode's Codesigning options ios, mac
s3 Generates a plist file and uploads all to AWS S3
notify Shows a macOS notification - use notification instead ios, android, mac
update_project_code_signing Updated code signing settings from 'Automatic' to a specific profile ios
xcode_install Make sure a certain version of Xcode is installed ios, mac
ipa Easily build and sign your app using shenzhen ios
upload_symbols_to_sentry Upload dSYM symbolication files to Sentry ios
opt_out_crash_reporting This will prevent reports from being uploaded when fastlane crashes ios, android, mac