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
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
- Building
- Screenshots
- Project
- Code Signing
- Documentation
- Beta
- Push
- Releasing your app
- Source Control
- Notifications
- App Store Connect
- Misc
- Deprecated
- Plugins
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 |
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 | [31mNo description provided[0m | 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 |